diff --git a/src/ActiveRecord.php b/src/ActiveRecord.php index a75e082..0cb754e 100644 --- a/src/ActiveRecord.php +++ b/src/ActiveRecord.php @@ -268,9 +268,7 @@ class ActiveRecord extends BaseActiveRecord if ($resolve instanceof HasBase) { $resolve = $resolve->get(); } - if ($resolve instanceof Collection) { - return $resolve->toArray(); - } else if ($resolve instanceof ActiveRecord) { + if ($resolve instanceof ObjectToArray) { return $resolve->toArray(); } else if (is_object($resolve)) { return get_object_vars($resolve); diff --git a/src/Base/AbstractCollection.php b/src/Base/AbstractCollection.php index 7f4e7f7..9063ebc 100644 --- a/src/Base/AbstractCollection.php +++ b/src/Base/AbstractCollection.php @@ -13,6 +13,7 @@ namespace Database\Base; use ArrayIterator; use Database\ActiveQuery; use Database\ActiveRecord; +use Database\ObjectToArray; use Exception; use JetBrains\PhpStorm\Pure; use Kiri\Abstracts\Component; @@ -23,7 +24,7 @@ use Traversable; * Class AbstractCollection * @package Database\Base */ -abstract class AbstractCollection extends Component implements \IteratorAggregate, \ArrayAccess +abstract class AbstractCollection extends Component implements \IteratorAggregate, \ArrayAccess, ObjectToArray { /** diff --git a/src/Base/BaseActiveRecord.php b/src/Base/BaseActiveRecord.php index 7d5cde3..bf77994 100644 --- a/src/Base/BaseActiveRecord.php +++ b/src/Base/BaseActiveRecord.php @@ -20,6 +20,7 @@ use Database\HasMany; use Database\HasOne; use Database\IOrm; use Database\Mysql\Columns; +use Database\ObjectToArray; use Database\Relation; use Database\SqlBuilder; use Database\Traits\HasBase; @@ -47,7 +48,7 @@ use validator\Validator; * @property Application $container * @property EventDispatch $eventDispatch */ -abstract class BaseActiveRecord extends Component implements IOrm, ArrayAccess +abstract class BaseActiveRecord extends Component implements IOrm, ArrayAccess, ObjectToArray { diff --git a/src/ObjectToArray.php b/src/ObjectToArray.php new file mode 100644 index 0000000..7882de0 --- /dev/null +++ b/src/ObjectToArray.php @@ -0,0 +1,11 @@ +