From fe67519682066c7461766294c0ec1d5d7a0ac511 Mon Sep 17 00:00:00 2001 From: Aldarien Date: Mon, 10 Oct 2022 17:32:34 -0300 Subject: [PATCH] Added column = property handling for mapping --- src/Alias/Model/Repository.php | 9 +++++++++ src/Concept/Model/Repository.php | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Alias/Model/Repository.php b/src/Alias/Model/Repository.php index c8da765..0ddede7 100644 --- a/src/Alias/Model/Repository.php +++ b/src/Alias/Model/Repository.php @@ -109,6 +109,9 @@ abstract class Repository implements RepositoryInterface return $mapping->column; } } + if (in_array($property, $this->getColumns())) { + return $property; + } throw new \InvalidArgumentException("Property {$property} not found in mapping in " . get_called_class()); } public function findPropertyByColumn(string $column): string @@ -118,6 +121,9 @@ abstract class Repository implements RepositoryInterface return $mapping->property; } } + if (in_array($column, $this->getProperties())) { + return $column; + } throw new \InvalidArgumentException("Column {$column} not found in mapping in " . get_called_class()); } @@ -251,6 +257,9 @@ abstract class Repository implements RepositoryInterface } catch (\InvalidArgumentException $e) { continue; } + if (isset($data[$column])) { + continue; + } $m = $this->getMethod($property); if (!method_exists($model, $m)) { continue; diff --git a/src/Concept/Model/Repository.php b/src/Concept/Model/Repository.php index a15c2c8..ef378d3 100644 --- a/src/Concept/Model/Repository.php +++ b/src/Concept/Model/Repository.php @@ -215,7 +215,7 @@ interface Repository public function fillData(Model $model, array $data): Model; /** - * Fill data array with Model values + * Fill data array with Model values. Accepts a preset data array * @param Model $model * @param array $data * @return array