【问题标题】:Symfony2 how to get the Doctrine EntityManager from a generic objectSymfony2 如何从通用对象中获取 Doctrine EntityManager
【发布时间】:2012-04-17 18:03:43
【问题描述】:

我有一个来自 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 检索实体? 提前致谢

【问题讨论】:

    标签: symfony doctrine


    【解决方案1】:

    好的,解决了!

    我只需要将 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);
        }
    ...
    }
    

    还是非常感谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      • 2013-05-25
      • 2014-06-08
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      相关资源
      最近更新 更多