私はSymfony2から始めており、FOSUserBundleのFOS \ UserBundle \ Form \ Handler\RegistrationFormHandlerをオーバーライドしようとしています。
私のコードは次のとおりです。
<?php
namespace Testing\CoreBundle\Form\Handler;
use FOS\UserBundle\Model\UserInterface;
use FOS\UserBundle\Form\Handler\RegistrationFormHandler as BaseHandler;
use Testing\CoreBundle\Entity\User as UserDetails;
class RegistrationFormHandler extends BaseHandler
{
protected function onSuccess(UserInterface $user, $confirmation)
{
// I need an instance of Entity Manager but I don't know where get it!
$em = $this->container->get('doctrine')->getEntityManager();
// or something like: $em = $this->getDoctrine()->getEntityManager
$userDetails = new UserDetails;
$em->persist($userDetails);
$user->setId($userDetails->getId());
parent::onSuccess($user, $confirmation);
}
}
つまり、重要なのは、Doctrineのエンティティマネージャーのインスタンスが必要なのですが、この場合、どこでどのように取得するのかわかりません。
何か案が?
前もって感謝します!