1

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

}

では、コードで強調表示されているように、Doctrine でエンティティを取得するために EntityManager を取得するにはどうすればよいでしょうか? 前もって感謝します

4

1 に答える 1

0

わかりました、解決しました!

コントローラー内の Registration クラスのコンストラクターに EntityManager を渡すだけです。

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

とにかくどうもありがとう。

于 2012-04-18T08:54:59.983 に答える