Symfony2形式:重复类型和他在树枝上的渲染

时间:2013-06-05 13:04:50

标签: forms symfony twig

我有一个表单,其中一个字段是:

$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>
....
....

问题在于,对于重复的类型,标签是重复的:请参阅附图。

你知道如何解决这个问题吗?

提前谢谢。enter image description here

1 个答案:

答案 0 :(得分:5)

由于使用form_row()而不是form_widget()输出密码控件,标签出现两次。 form_row()方法一次性输出字段错误,标签和小部件。如果您想自己输出字段错误,可以使用例如form_errors(form.password.first)。