我有一个表单,其中一个字段是:
$builder->add('password', 'repeated', array(
'type' => 'password',
'invalid_message' => 'The password fields must match.',
'options' => array('attr' => array('class' => 'password-field')),
'required' => true,
'first_options' => array('label' => 'Password'),
'second_options' => array('label' => 'Confirm Password'),
));
除了表单渲染之外,这里的一切都很好。我习惯用这种方式在twig文件中呈现表单:
<table style="width:500px; padding:30px">
<tr>
<td>
{{ form_label(form.email) }}
</td>
<td>
{{ form_widget(form.email, { 'attr': {'size': 30} }) }}
</td>
</tr>
<tr>
<td>
{{ form_label(form.password.first) }}
</td>
<td>
{{ form_row(form.password.first, { 'attr': {'size': 30} }) }}
</td>
</tr>
<tr>
<td>
{{ form_label(form.password.second) }}
</td>
<td>
{{ form_row(form.password.second, { 'attr': {'size': 30} }) }}
</td>
</tr>
<tr>
....
....
问题在于,对于重复的类型,标签是重复的:请参阅附图。
你知道如何解决这个问题吗?
提前谢谢。
答案 0 :(得分:5)
由于使用form_row()而不是form_widget()输出密码控件,标签出现两次。 form_row()方法一次性输出字段错误,标签和小部件。如果您想自己输出字段错误,可以使用例如form_errors(form.password.first)。