0

symfony 2.1 アプリのデフォルトのエラー小枝テンプレートを次のように上書きしようとしました:

#config.yml
twig:
   debug:            %kernel.debug%
   strict_variables: %kernel.debug%
   form:
     resources:
       - 'AAACoreBundle::form_errors.html.twig' 
       - 'AAACoreBundle::form_label.html.twig'

そして、AAACoreBundle/Resources/views に form_errors.html.twig を作成しました (デフォルトのものからほとんどコピー/貼り付けしたものです)。

#form_errors.html.twig
{% block form_errors %}
{% spaceless %}
{% if errors|length > 0 %}
<ul class="validation_errors">
    {% for error in errors %}
    <li>{{
                    error.messagePluralization is null
                        ? error.messageTemplate|trans(error.messageParameters, 'validators')
                        : error.messageTemplate|transchoice(error.messagePluralization, error.messageParameters, 'validators')
    }}</li>
    {% endfor %}
</ul>
{% endif %}
{% endspaceless %}
{% endblock form_errors %}

残念ながら、ラベル テンプレートのみが使用されます。検証エラーの場合でも、デフォルトのテンプレートを取得します。奇妙なことに、このテンプレートを twig フォーム ファイルで強制すると、次のように機能します。

{% form_theme form with 'AAACoreBundle::form_errors.html.twig' %}

私が何をチェックできるか知っている人はいますか?この理由を見つけることができないようです。

4

1 に答える 1

0

どういうわけか理解できませんが、順序を切り替えると実際に機能しました。

これを提案してくれた dreipunktnull に感謝します。

于 2012-12-21T17:01:41.323 に答える