From a8d548c0c4d3e7cb7cd325c4f65e8792aadd7b8f Mon Sep 17 00:00:00 2001 From: Aldarien Date: Mon, 3 Aug 2020 23:27:34 -0400 Subject: [PATCH] Si existe duplicado avisa --- common/Factory/Model.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/common/Factory/Model.php b/common/Factory/Model.php index 4f77234..1cb8c66 100644 --- a/common/Factory/Model.php +++ b/common/Factory/Model.php @@ -23,6 +23,16 @@ class Model { return $this; } public function create(string $model_class, array $data = null): ModelInterface { + if ($data !== null) { + $model = $this->find($model_class); + foreach ($data as $f => $v) { + $model = $model->where([[$f, $v]]); + } + $model = $model->one(); + if ($model !== false) { + return $model; + } + } return BaseModel::factory($model_class)->create($data); } protected $class; @@ -334,11 +344,17 @@ class Model { public function one($id = null): ModelInterface { $result = $this->build()->findOne($id); + if (!$result) { + return false; + } $result->setFactory($this); return $result; } public function many(): array { $results = $this->build()->findMany(); + if (!$results) { + return false; + } foreach ($results as &$r) { $r->setFactory($this); } @@ -346,6 +362,9 @@ class Model { } public function array(): array { $results = $this->build()->findArray(); + if (!$results) { + return false; + } return $results; }