1
我需要在保存之前爲新用戶設置默認值。 問題是我找不到一種方法從FormHandler中通過它的存儲庫獲取對象。FOSUserBundle:從FormHandler中獲取存儲庫
<?php
namespace Acme\UserBundle\Form\Handler;
use FOS\UserBundle\Form\Handler\RegistrationFormHandler as BaseHandler;
use FOS\UserBundle\Model\UserInterface;
class RegistrationFormHandler extends BaseHandler
{
protected function onSuccess(UserInterface $user, $confirmation)
{
$repository = $this->container->get('doctrine')->getEntityManager()->getRepository('AcmeUserBundle:Photo');
if($user->isMale()){
$photo = $repository->getDefaultForMale();
$user->setPhoto($photo);
}
else {
$photo = $repository->getDefaultForFemale();
$user->setPhoto($photo);
}
parent::onSuccess($user, $confirmation);
}
}
的問題來自於以下行:
$repository = $this->container->get('doctrine')->getEntityManager()->getRepository('AcmeUserBundle:Photo');
...我不能找到一個辦法讓這個倉庫,或從本FormHandler實體管理器。
非常感謝您的幫助! A
完美!很多很多謝謝,一切工作正常:-) – Aurel 2012-04-02 17:26:55
我不得不將服務定義中的最後一個參數更改爲:@ fos_user.util.token_generator – Nick 2013-01-29 21:13:51
謝謝,節省了我的時間!在新版本中有一個新的參數:'@ service_container'前的'@ fos_user.util.token_generator' – Vedmant 2015-10-29 22:23:21