我正在尝试使用FOSUserBundle动态地将字段添加到注册表单。
我试过了:
public static function getSubscribedEvents()
{
return array(
FOSUserEvents::REGISTRATION_INITIALIZE => 'preSetData',
);
}
public function preSetData(GetResponseUserEvent $event)
{
$user = $event->getUser();
$form = $event->getForm();
switch($user->getType()){
case 'x':
$form->add('y');
break;
}
}
但是在preSetData参数(GetResponseUserEvent)中收到的类不允许我修改表单,只允许我修改用户。有没有办法修改这样的注册表?
这可以通过多个用户表单完成,在自定义registerAction中使用逻辑扩展基本表单,因为它看起来更优雅的解决方案吗?如果是这样,我怎么能实现呢?