diff --git a/src/Common/EntityResolver.php b/src/Common/EntityResolver.php index 2c17984..45de764 100644 --- a/src/Common/EntityResolver.php +++ b/src/Common/EntityResolver.php @@ -71,6 +71,7 @@ class EntityResolver { } $fieldList[$key] = $item; + break; } } diff --git a/src/EntityTrait.php b/src/EntityTrait.php index f413491..eeeb1a9 100644 --- a/src/EntityTrait.php +++ b/src/EntityTrait.php @@ -108,6 +108,25 @@ trait EntityTrait { return $this; } + public function entityGetDataset() : array + { + $fields = array_keys($this->resolveEntity()->fieldList()); + + return array_combine($fields, array_map(function(string $key) { + return $this->$key; + }, $fields)); + } + + public function __sleep() + { + return array_keys($this->resolveEntity()->fieldList()); + } + + public function jsonSerialize() + { + return $this->entityGetDataset(); + } + /** * @Ignore */ @@ -135,7 +154,7 @@ trait EntityTrait { /** * @Ignore */ - public static function field($name, ? string $alias = null) + public static function field($name, ? string $alias = null) : EntityField { return new EntityField(static::class, $name, $alias ?: Repository::DEFAULT_ALIAS); } @@ -143,18 +162,10 @@ trait EntityTrait { /** * @Ignore */ - public static function fields(...$fields) + public static function fields(...$fields) : string { return implode(', ', array_map(function($name) { return static::field($name); }, $fields)); } - - /** - * @Ignore - */ - public static function table() - { - return "REFLECT TABLE"; - } } diff --git a/src/Repository.php b/src/Repository.php index 4155017..b4e75b8 100644 --- a/src/Repository.php +++ b/src/Repository.php @@ -322,4 +322,9 @@ class Repository { } + + public function table() + { + return "REFLECT TABLE"; + } }