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