1

ユーザー側にSymfony2とFOSUserBundleを使ってウェブサイトを開発しています。登録フォームをカスタマイズしようとしていますが、いくつかの問題を実験しています。

  1. ドキュメントに従ってフィールドの横にフィールドエラーを含めようとしましたが、フォームの上部にしか表示されません。
  2. 両方のパスワードが同じでない場合、フォームの上部に次のエラーが書き込まれます。値が無効です。これはあまり明確ではなく、フランス語に翻訳したいのですが、言語ファイルで見つからないようです。私はそのエラーを除いて、すべてのフォームを翻訳していました。

これが私のフィールドテンプレートです:

{% 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 %}
4

1 に答える 1

1

「無効」エラーは、デフォルトですべてのフィールドで同じであるという点で少し特殊です。繰り返しフィールド(または任意のフィールド)のオプションでオーバーライドできます。

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

ところで、繰り返しフィールドのルートフォームへのエラーのバブリングは、Symfony 2.1 で修正された問題でした。

于 2012-07-28T06:10:10.773 に答える