更改symfony 2表单字段的名称属性
我有一张表格要登记:更改symfony 2表单字段的名称属性,symfony,symfony-forms,Symfony,Symfony Forms,我有一张表格要登记: public function buildForm(FormBuilderInterface $builder, array $options) { parent::buildForm($builder, $options); $builder->add('tel'); $builder->add('telvisible'); } 显示此字段后: <input type="checkbox" id="fos_user_regi
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder, $options);
$builder->add('tel');
$builder->add('telvisible');
}
显示此字段后:
<input type="checkbox" id="fos_user_registration_form_telvisible" name="fos_user_registration_form[telvisible]" value="1">
但我想展示:
<input type="checkbox" id="fos_user_registration_form_telvisible" name="telvisible" value="1">
要从名称中删除类型名称,有两种解决方案:
getName
或getBlockPrefix
实现中返回null为什么要更改属性?基本上你无法控制名称。S2表单句柄依赖它将发布的数据映射回实体。一旦你开始用嵌套的实体创建更复杂的表单,那么名称就会完全失控。所有这些都可以工作,但它并不意味着人类可读。关于名称的问题是…?我对jquery插件有问题:无法识别的表达式:input[name=fos\u user\u registration\u form[telvisible]],但当我使用其他名称(没有[])时,它成功工作了,这是众所周知的javascript/php问题。在大多数情况下,您可以通过在名称周围加引号来修复它。输入[name='fos\u user\u registration\u form[telvisible]']
public function getBlockPrefix()
{
return null;
}
$form = $this->get('form.factory')
->createNamedBuilder(null, 'form', $address)
->add('address', 'text');