Symfony2如何从通用对象获取Doctrine EntityManager

时间:2012-04-17 18:03:43

标签: symfony doctrine

我有一个来自Symfony2项目的对象。以下是代码。     命名空间Acme \ UserBundle \ Form \ Model;

use Symfony\Component\Validator\Constraints as Assert;
use Acme\UserBundle\Entity\User;

class Registration
{
    /**
     * @Assert\Type(type="Acme\UserBundle\Entity\User")
     */
    protected $user;

    ...

    public function setUser(User $user)
    {
        //Get the EntityManager here!!!!
        $group = $em
            ->getRepository('AcmeUserBundle:Group')
            ->findOneByName('Customers');
        $this->user->addGroup($group);
    }
....

}

因此,如代码中所强调的,如何让EntityManager检索具有Doctrine的实体? 提前致谢

1 个答案:

答案 0 :(得分:0)

好的,解决了!

我只需要将EntityManager传递给控制器​​中Registration类的构造函数。

use Symfony\Component\Validator\Constraints as Assert;
use Acme\UserBundle\Entity\User;


class Registration
{
    /**
    * @Assert\Type(type="Acme\UserBundle\Entity\User")
    */
    protected $user;

    ...

    protected $em;    

    public function __construct($em) {
       $this->em = $em;
    }    

    public function setUser(User $user)
    {
        $this->user = $user;
        $group = $this->em->getRepository('AcmeUserBundle:Group')
            ->findOneByName('Customers');
        $this->user->addGroup($group);
    }
...
}

非常感谢。