2012-04-17 47 views
1

我有一个来自Symfony2项目内部的对象。这里是代码。命名空间Acme \ UserBundle \ Form \ Model;Symfony2如何从通用对象中获得Doctrine EntityManager

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的实体? 在此先感谢

回答

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); 
    } 
... 
} 

无论如何非常感谢。

相关问题