Symfony2 fosUserBundle更改密码防止嵌套表单

时间:2013-04-24 14:32:41

标签: php forms symfony nested fosuserbundle

如何阻止表格 - 通过Symfony2呈现 - FosUserBundle - 嵌套? 建造者有两个场,其中有重复场。似乎这是goind被渲染为嵌套的

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”-divs,而不需要额外的FormRows。布局并不意味着有两个嵌套的FormRows

我希望你理解我的问题。

谢谢

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

解决方案是重新定义repeated_row块

{% block repeated_row %}
{% spaceless %}

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

{% endspaceless %}
{% endblock repeated_row %}