From aeac2c65e15f47ab79eb26c55b2173274c84e8c1 Mon Sep 17 00:00:00 2001 From: Martin Kluska Date: Mon, 11 Jun 2018 17:52:20 +0200 Subject: [PATCH] Add defaultPositionValue property --- README.md | 1 + src/Traits/BasePositionTrait.php | 3 ++- src/Traits/PositionTrait.php | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ec2bccd..a428447 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,7 @@ You can set: * *string* `positionColumn` *to enable overriding for the position column* * *boolean* `disablePositionUpdate` *disables the updated of other entries* * *string|array* `positionGroup` *builds a filter from columns for position calculation. Supports single column or multiple columns* +* *string* `defaultPositionValue` *allows returning different value when position is empty string or null. Default value is null* #### PositionScopeTrait diff --git a/src/Traits/BasePositionTrait.php b/src/Traits/BasePositionTrait.php index 0d6f597..d5dcea7 100644 --- a/src/Traits/BasePositionTrait.php +++ b/src/Traits/BasePositionTrait.php @@ -48,7 +48,8 @@ public function setPosition($value) protected function setPositionAttribute($value) { // Convert to numeric value if needed - $finalValue = is_null($value) || $value === '' ? null : intval($value); + $finalValue = is_null($value) || $value === '' ? + $this->positionOption('defaultPositionValue', null) : intval($value); $this->attributes['position'] = $finalValue; } diff --git a/src/Traits/PositionTrait.php b/src/Traits/PositionTrait.php index 1635396..1b6fcc0 100644 --- a/src/Traits/PositionTrait.php +++ b/src/Traits/PositionTrait.php @@ -1,4 +1,5 @@