我已經在symfony2中實現了表單的數據繼承documentation,但是我的問題是當我使用form_widget()
(Twig的函數)渲染它時我得到一個帶有繼承名稱的額外標籤領域。渲染繼承形式在symfony2中添加額外的標籤
父窗體代碼:
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>
任何人都知道爲什麼會發生這種情況,它如何解決?
我真的很感謝您的支持:)
您是使用「{{form(form)}}」渲染還是像'{{form_row(form.email)}}'分開渲染每一行?如果分開,只需渲染每個內部字段而不是外部像'{{form_row(form.email.email)}}''。 – qooplmao
我正在使用form_widget(表單) – Mollo