使用FOSUserBundle自定义Symfony2中的表单错误

时间:2012-07-27 19:07:57

标签: php symfony fosuserbundle

我正在为用户端使用Symfony2和FOSUserBundle开发一个网站。我正在尝试自定义注册表单,我正在尝试一些问题。

  1. 我尝试按照文档在字段旁边添加字段错误,但它只显示在表单的顶部;
  2. 如果两个密码不相同,则表单顶部会写入错误:该值无效。这不是很清楚,我想用法语翻译,但我似乎无法在语言文件中找到它。我曾经翻译过所有表格,但错误除外。
  3. 这是我的字段模板:

    {% block field_errors %}
    {% spaceless %}
    {% if errors|length > 0 %}
    <ul class="list_error">
    {% for error in errors %}
    <li>{{ error.messageTemplate|trans(error.messageParameters, 'validators') }}</li>
    {% endfor %}
    </ul>
    {% endif %}
    {% endspaceless %}
    {% endblock field_errors %}
    
    
    {% block field_row %}
    {% spaceless %}
    <tr>
        <td>
            <label for="{{ form.vars.id }}">{{ form.vars.id|trans( {}, "FOSUserBundle" ) }}</label>
        </td>
        <td>
            {{ form_widget(form) }}
            {{ form_errors(form) }}
        </td>
    </tr>
    {% endspaceless %}
    {% endblock field_row %}
    

1 个答案:

答案 0 :(得分:1)

“无效”错误有点特殊,因为默认情况下它对所有字段都是相同的。您可以在重复字段(或任何字段)的选项中覆盖它:

$builder->add('password', 'repeated', array(
    'type' => 'password',
    'invalid_message' => 'Please enter the same password twice',
));

顺便说一下,错误冒泡到重复字段的根表单是an issue已在Symfony 2.1中修复。