From 07a40f44494e2618acdcc200eee75db316c011a9 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 11 Nov 2021 03:11:41 +0800 Subject: [PATCH] 1 --- src/Base/AbstractCollection.php | 2 +- src/Base/CollectionIterator.php | 4 ++-- src/ModelInterface.php | 9 +++++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Base/AbstractCollection.php b/src/Base/AbstractCollection.php index dd46ee5..003b19c 100644 --- a/src/Base/AbstractCollection.php +++ b/src/Base/AbstractCollection.php @@ -134,7 +134,7 @@ abstract class AbstractCollection extends Component implements \IteratorAggregat return NULL; } if (!($this->_item[$offset] instanceof ModelInterface)) { - return $this->model::populate($this->_item[$offset]); + return $this->model->setAttributes($this->_item[$offset]); } return $this->_item[$offset]; } diff --git a/src/Base/CollectionIterator.php b/src/Base/CollectionIterator.php index 4326352..1812257 100644 --- a/src/Base/CollectionIterator.php +++ b/src/Base/CollectionIterator.php @@ -17,7 +17,7 @@ use Exception; class CollectionIterator extends \ArrayIterator { - private \Database\Model|string $model; + private ModelInterface|string $model; /** @var ActiveQuery */ @@ -56,7 +56,7 @@ class CollectionIterator extends \ArrayIterator */ protected function newModel($current): ModelInterface { - return $this->model::populate($current); + return $this->model->setAttributes($current); } diff --git a/src/ModelInterface.php b/src/ModelInterface.php index 385a423..ed079a9 100644 --- a/src/ModelInterface.php +++ b/src/ModelInterface.php @@ -32,10 +32,11 @@ interface ModelInterface public static function find(string|int $param): mixed; - /** - * @return string - */ - public static function className(): string; + /** + * @param array $data + * @return static + */ + public static function populate(array $data): static; /**