呈现继承形式在 symfony2 中添加额外的标签
Rendering Inherit Forms adds extra labels in symfony2
我已经在 documentation 之后在 symfony2 中实现了表单的数据继承,但是我的问题是当我使用 form_widget()
(Twig 的函数)渲染它时,我得到了一个额外的标签,名称为继承字段。
家长表格代码:
public function buildForm(FormBuilderInterface $builder, array $options){
$builder->add('username')
->add('email', new EmailType()) // <-- Getting child
->add('birthdate', 'date')
->add('plainPassword', new PasswordType());
}
子表格代码:
class EmailType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options){
$builder->add('email', 'email');
}
public function getName() {
return 'user_email';
}
}
控制器代码(简体):
$user = new User();
$form = $this->createForm(new RegisterType(), $user);
return $this->render(':users:register.html.twig', array('form' => $form->createView()));
我呈现的表单如下所示:
<label class="required">Email</label>
<div id="user_register_email">
<label for="user_register_email_email" class="required">Email</label> <--- Child's label Not wanted
<input type="email" id="user_register_email_email" name="user_register[email][email]" required="required">
</div>
有人知道为什么会这样吗?如何解决?
非常感谢您的支持:)
您必须明确地将 label
设置为 false
以防止它呈现。
$builder->add('email', new EmailType(), array(
'label' => false,
));
我已经在 documentation 之后在 symfony2 中实现了表单的数据继承,但是我的问题是当我使用 form_widget()
(Twig 的函数)渲染它时,我得到了一个额外的标签,名称为继承字段。
家长表格代码:
public function buildForm(FormBuilderInterface $builder, array $options){
$builder->add('username')
->add('email', new EmailType()) // <-- Getting child
->add('birthdate', 'date')
->add('plainPassword', new PasswordType());
}
子表格代码:
class EmailType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options){
$builder->add('email', 'email');
}
public function getName() {
return 'user_email';
}
}
控制器代码(简体):
$user = new User();
$form = $this->createForm(new RegisterType(), $user);
return $this->render(':users:register.html.twig', array('form' => $form->createView()));
我呈现的表单如下所示:
<label class="required">Email</label>
<div id="user_register_email">
<label for="user_register_email_email" class="required">Email</label> <--- Child's label Not wanted
<input type="email" id="user_register_email_email" name="user_register[email][email]" required="required">
</div>
有人知道为什么会这样吗?如何解决?
非常感谢您的支持:)
您必须明确地将 label
设置为 false
以防止它呈现。
$builder->add('email', new EmailType(), array(
'label' => false,
));