0

我如何防止表单 - 通过 Symfony2 - FosUserBundle 呈现 - 被嵌套?构建器有两个字段,其中一个是重复字段。似乎这将被渲染为嵌套

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('current_password', 'password', array(
        'label' => 'form.current_password',
        'translation_domain' => 'FOSUserBundle',
        'mapped' => false,
        'constraints' => new UserPassword(),
    ));
    $builder->add('new', 'repeated', array(
        'type' => 'password',
        'options' => array('translation_domain' => 'FOSUserBundle'),
        'first_options' => array('label' => 'form.new_password'),
        'second_options' => array('label' => 'form.new_password_confirmation'),
        'invalid_message' => 'fos_user.password.mismatch',
    ));
}

我得到的是,当表单呈现时是这样的:http: //pastebin.com/Np2bvgvH

如您所见,重复的表单字段被包裹在另一个“FormRows”-div 中。我希望它们是简单的“FormRow”-div,没有额外的 FormRows。布局并不意味着有两个嵌套的 FormRows

我希望你能理解我的问题。

谢谢

4

2 回答 2

0

解决方案是重新定义 repeat_row 块

{% block repeated_row %}
{% spaceless %}

    {% for child in form %}
        {{ form_row(child) }}
    {% endfor %}

{% endspaceless %}
{% endblock repeated_row %}
于 2013-04-26T13:40:44.813 回答
0

看看http://symfony.com/doc/2.0/reference/forms/types/repeated.html

Symfony 考虑了这种类型的字段。

于 2013-04-24T16:17:44.957 回答