Symfony2 でフォームのエラーメッセージをカスタマイズする方法を理解するのを手伝ってくれませんか? HTML レイアウトを変更したり、div やクラスなどを追加したい...
ガイドを読むと、と呼ばれるファイルに配置するコードが提供されますfields_errors.html.twig
が、このファイルを配置する場所と、追加の構成が必要かどうかはわかりません。
誰か助けてくれませんか?
Symfony2 でフォームのエラーメッセージをカスタマイズする方法を理解するのを手伝ってくれませんか? HTML レイアウトを変更したり、div やクラスなどを追加したい...
ガイドを読むと、と呼ばれるファイルに配置するコードが提供されますfields_errors.html.twig
が、このファイルを配置する場所と、追加の構成が必要かどうかはわかりません。
誰か助けてくれませんか?
テンプレートをResourses/views/
バンドルのフォルダーに配置する必要があります。例えば、
{# Vendor/YourBundle/Resourses/views/form_fields.html.twig #}
{% extends 'form_div_layout.html.twig' %}
{% block form_errors %}
{# your form error template #}
{% endblock form_errors %}
{# other customized blocks #}
次に、フォーム ページ テンプレートで、
{% extends your:page:layout %}
{% form_theme form 'VendorYourBundle::form_fields.html.twig' %}
{{ form_errors(form.field) }}
{# ..... #}
その他のオプションと実装のリファレンスについては、フォーム テーマのクックブック エントリとデフォルト フィールド レイアウトの実装を確認してください。
テンプレートですべてのエラーメッセージを一度にカスタマイズできます。
<div class="your_new_class">
{{ form_errors(form) }}
</div>
または個別に(たとえば、フィールドがタイトルの場合)
<div class="your_new_class">
{{ form_errors(form.task) }}
</div>
symfony3 では、最初に config.yml のテーマ フォームを呼び出します。
twig:
debug: "%kernel.debug%"
strict_variables: "%kernel.debug%"
form_themes:
- 'YourBundle:FormTheme:error.html.twig'
小枝 error.html.twig の例
{% block form_errors %}
{% spaceless %}
{% if errors|length > 0 %}
<div class="alert alert-danger">
{% for error in errors %}
<strong>{{ error.message }}</strong>
{% endfor %}
</div>
{% endif %}
{% endspaceless %}
{% endblock form_errors %}