EC-CUBE3の入力チェック時のエラーメッセージで項目名を表示させる方法

EC-CUBE3では入力チェック時のエラーメッセージ表示が標準のままだと項目名が表示されておらず、表示させるためには少々手を加える必要があります。

そこで今回は項目名を表示させたいけど分からないという方のために項目名を表示する方法を説明します。

現在のエラーメッセージの表示は標準ではこのようになっています。

f:id:amidaike:20170118102207p:plain

キャプチャを確認してもらうと分かる通り項目名が表示されておらず、何が入力されていないのか分かりづらいです。このエラーメッセージ表示を、

f:id:amidaike:20170118102228p:plain

このように項目名を表示させるにはどうするかというと、 ECCUBEROOT/src/Eccube/Resource/template/default/Form/form_layout.twigの59行目にある

<p class="errormsg text-danger">{{ error.message |trans }}</p>

<p class="errormsg text-danger">{{ form.vars.name|trans }} : {{ error.message |trans }}</p

に修正します。

※ECCUBEROOT : EC-CUBE3がインストールされているディレクト

この修正だけだとまだ不完全で、

f:id:amidaike:20170118105002p:plain

とinput属性のnameがそのまま表示されてしまいます。この部分を日本語に表示させるには、

ECCUBEROOT/src/Eccube/Resource/locale/message.ja.ymlファイルに以下の設定を追加します。(追加する場所はどこでも可能)

name01:name02:kana01: セイ
kana02: メイ
・
・
・

この内容を追加することで項目名が日本語表示されます。

入力チェックエラー発生時に英語表記されたら他の項目に対してもmessage.ja.yml

画面上に表示された値: 日本語名

と追加していくことで日本語に対応可能です。

エラーメッセージに項目名を表示させたいという方は是非お試しください。

既に本番環境を運用されている方でこの方法を適用しても項目名が表示されないという方は、ECCUBEROOT/app/cache/translatorディレクトリを削除後に再度お試しください。