diff --git a/src/Database/Traits/Validation.php b/src/Database/Traits/Validation.php index 2d8cffada..f1b2451c2 100644 --- a/src/Database/Traits/Validation.php +++ b/src/Database/Traits/Validation.php @@ -163,8 +163,7 @@ protected function getRelationValidationValue($relationName) !$this->relationLoaded($relationName) && $this->hasDeferred($this->sessionKey, $relationName) ) { - $fetchMethod = $this->isRelationTypeSingular($relationName) ? 'first' : 'get'; - $data = $this->$relationName()->withDeferred($this->sessionKey)->$fetchMethod(); + $data = $this->$relationName()->withDeferred($this->sessionKey)->get(); } else { $data = $this->$relationName; @@ -194,12 +193,7 @@ protected function getRelationValidationValue($relationName) return $value; }; - // Process singular - if ($this->isRelationTypeSingular($relationName)) { - return $processValidationValue($data); - } - - // Process multi + // Cast to primitive type if ($data instanceof \Illuminate\Support\Collection) { $data = $data->all(); } @@ -208,6 +202,12 @@ protected function getRelationValidationValue($relationName) return null; } + // Process singular (last item) + if ($this->isRelationTypeSingular($relationName)) { + return $processValidationValue($data[array_key_last($data)]); + } + + // Process multi $result = []; foreach ($data as $key => $value) { diff --git a/src/Parse/Syntax/SyntaxModelTrait.php b/src/Parse/Syntax/SyntaxModelTrait.php index 4bafe47cf..6e305608d 100644 --- a/src/Parse/Syntax/SyntaxModelTrait.php +++ b/src/Parse/Syntax/SyntaxModelTrait.php @@ -41,7 +41,7 @@ public function defineSyntaxRelations() } /** - * Prepare the syntax field data for saving. + * getFormSyntaxData prepares the syntax field data for saving. */ public function getFormSyntaxData() { @@ -57,9 +57,7 @@ public function getFormSyntaxData() continue; } - /* - * File upload - */ + // File upload if ($params['type'] === 'fileupload' && $this->hasRelation($field)) { if ($this->sessionKey) { if ($image = $this->$field()->withDeferred($this->sessionKey)->first()) { @@ -79,7 +77,7 @@ public function getFormSyntaxData() } /** - * Helper to get the perfect sized image. + * getThumbForImage helper to get the perfect sized image. */ protected function getThumbForImage($image, $params = []) {