在Symfony2中显示重复的字段类型

时间:2015-11-19 11:43:31

标签: forms symfony twig

我在Symfony2表单中有一个密码重复字段类型,如下所示:

                ->add('password', 'repeated', array(
                'type' => 'password',
                'invalid_message' => 'Les mots de passe doivent correspondre',
                'options' => array('required' => true),
                'first_options' => array('label' => 'Mot de passe'),
                'second_options' => array('label' => 'Mot de passe (validation)'),
                'required' => $bRequired,
                'trim' => true,
                'constraints' => array(
                    new Assert\Regex(array(
                        'pattern' => "/^(?=.*[0-9])(?=.*[a-z])[a-zA-Z0-9!?+]{8,15}$/",
                        'match' => true,
                        'message' => "msg"
                            )),
                    new Constraints\NotBlank(),
                )
            ))

在树枝上,我曾经像这样显示这个字段:

{% for passwordField in form.password %}
    {{ form_row(passwordField,{'attr': { 'class': 'form-control'} }) }}
{% endfor %}

我想知道是否有办法显示密码字段和验证字段单独,以便我可以在表单的不同位置显示它们。

1 个答案:

答案 0 :(得分:2)

正如在doc:

中解释的那样
// in your template.html.twig

/.../

{{ form_row(form.password.first,{'attr': { 'class': 'form-control'} }) }}
{{ form_row(form.password.second,{'attr': { 'class': 'form-control'} }) }}

/.../

其中:

  

名称first和second是两个子字段的默认名称。但是,可以通过first_name和second_name选项控制这些名称。如果您已设置这些选项,则在渲染时使用这些值而不是第一个和第二个。