当我为任意实体定义表单类型时,让我们说User
,我可以添加一个UserFormType类,如下所示,
class UserFormType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
// ...
$builder->add('email', 'text');
}
}
如果我想为用户定义另一种表单类型该怎么办:
答案 0 :(得分:2)
您可以根据需要为每个实体定义任意数量的类型。
如果我需要多个Type,我通常会使用“standard”entitynameType,而对于其他类型我会附加一些与我正在使用它的地方相关的关键字。例如,如果一个表单仅用于更新状态UserStatusType。
您必须使用另一个类,因为您正在扩展AbstractType,而构建表单的方法必须是buildForm。
如果您需要根据您拥有的用户类型调整您的表单,您可以使用事件监听器 http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html