我使用的是fos用户包和pugx多用户包。 我已阅读所有文档,我是Symfony的新手。 在pugx多用户捆绑包中,除了一个点外,还有一个示例:成功注册。重写控制器如何在成功注册时分配角色?
- 样品为产生形式=>确定的覆盖模板
- 样品为产生形式=>确定重写成功注册样品=>无的
- 样品。
这里是我的代码:
class RegistrationController extends BaseController
{
public function registerAction(Request $request)
{
$response = parent::registerAction($request);
return $response;
}
public function registerTeacherAction()
{
return $this->container
->get('pugx_multi_user.registration_manager')
->register('MyBundle\Entity\PersonTeacher');
}
public function registerStudentAction()
{
return $this->container
->get('pugx_multi_user.registration_manager')
->register('MyBundle\Entity\PersonStudent');
}
}
问题是与->get('pugx_multi_user.registration_manager')
它返回一个经理。在fos user overring controllers help中,他们得到form
或form.handler
。我很难与pugx_multi_user管理器“链接”。
我应该把什么代码在registerTeacherAction()
设置教师的角色,并在registerStudentAction()
就注册成功设置学生角色?
引用链接:'要注意一个重要的事情是,听众将聆听您的application.'所有实体......这意味着,每次有一个持续的行动,无论* *的坚持实体,这个函数会被调用吗?如果是这样,请原谅我说这样的说法,但注册学生或教师时,这是一个有点吃不消只是一个动作...这是一种使用大锤牛刀。你确定没有其他办法吗? –
好吧,它绝对是脱钩方面的一个好方法。在那里1-2小''instanceof'检查不会真的让你失望。你可以藏汉整合使用[生命周期回调(http://symfony.com/doc/current/book/doctrine.html#lifecycle-callbacks)如果这听起来更好地为您直接作用,加入到你的实体。那么有几种方法,重写这个RegistrationController上成功注册触发事件,... – nifr
就是它了!我有'Person'这个抽象类,'PersonTeacher'实现'Person'和'PersonStudent'也实现'Person'。所以我会为每个类添加自定义的“生命周期”回调,并且这应该可以做到。我可以请你在你的回答中添加你的评论吗?这将有助于任何人阅读。非常感谢你。 –