- Work done on setting entities properties using array values

This commit is contained in:
Dave M. 2020-02-03 11:13:26 -05:00
parent 8e91c3a418
commit bad5123447
3 changed files with 27 additions and 10 deletions

View File

@ -71,6 +71,7 @@ class EntityResolver {
} }
$fieldList[$key] = $item; $fieldList[$key] = $item;
break; break;
} }
} }

View File

@ -108,6 +108,25 @@ trait EntityTrait {
return $this; 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 * @Ignore
*/ */
@ -135,7 +154,7 @@ trait EntityTrait {
/** /**
* @Ignore * @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); return new EntityField(static::class, $name, $alias ?: Repository::DEFAULT_ALIAS);
} }
@ -143,18 +162,10 @@ trait EntityTrait {
/** /**
* @Ignore * @Ignore
*/ */
public static function fields(...$fields) public static function fields(...$fields) : string
{ {
return implode(', ', array_map(function($name) { return implode(', ', array_map(function($name) {
return static::field($name); return static::field($name);
}, $fields)); }, $fields));
} }
/**
* @Ignore
*/
public static function table()
{
return "REFLECT TABLE";
}
} }

View File

@ -322,4 +322,9 @@ class Repository
{ {
} }
public function table()
{
return "REFLECT TABLE";
}
} }