doctrine2可以从数组中水合新实体吗?

问题描述

| 我认为标题要求一切。很简单,我有一个实体:
class User {
    private $id;
    private $name;
    private $username;
}
与所有合适的二传手和吸气剂。我有一个数组:
array( \'name\' => \'joe\',\'username\' => \'shmoe\' );
我希望能够做这样的事情:
Some\\UnkNown\\Doctrine\\Object::hydrateFromArray($array);
显然,创建一个为对象水合的函数会很容易,但是,一定要有一定的理论来实现这一目标吗?     

解决方法

        弄清楚了。 给定一个存储库:
//for odm
$repo->getDocumentManager()->getHydratorFactory()->hydrate($entity,$array);
我不知道是否可以对ORM进行同样的操作,但是我目前正在使用ODM。     ,        与实体一样,由您决定创建setter和getter。
class User
{
    private $id;
    private $name;
    private $username;

    public function fromArray($array)
    {
         // Code to fill the object here.
    }
}
也没有什么说不能在构造函数中实现的。请记住,Doctrine 2实体不会从主类继承任何东西,除非您自己做。它只是作用于它。     ,        您可以使用序列化器组件:
$user = $serializer->deserialize($data,\'Namespace\\User\',\'json\');
http://symfony.com/doc/current/components/serializer.html#deserializing-an-object