Laravel5.6, 5.7 バリデーションメッセージを表示、日本語化、個別編集

Laravel5.6, 5.7 バリデーションメッセージを表示、日本語化、個別編集

今回もLaravel 5.6, 5.7の記事です。前回の記事で、FormRequestを用いてバリデーションルールを記述しました。

 

今回はバリデーションメッセージの表示、編集を行っていきましょう。

 

コントローラー、リクエスト、リソースファイルはこうなっています。

MembersController.php

 

create.blade.php

 

MembersRequest.php

 

それではバリデーションエラーメッセージを記述しましょう。

 

バリデーションエラーメッセージの表示

create.blade.php

$errors変数を呼び出すことによって、対応したinputのエラーメッセージを表示することができます。

画像は名前に100文字以上、ポジションに255文字以上、身長に1桁を入力した場合のエラーメッセージです。

エラーメッセージは表示できましたが、元の入力値が消えてしまっているので、よくわからないですね。入力値を保持するようにしましょう。

 

入力値の保持

create.blade.php

value=”{{ old(‘name属性’) }}”をinputに追加します。old関数を使用することで、送信したリクエストを表示することができます。

 

これで入力値の保持、エラーメッセージの表示ができましたが、エラー文が英文ですので、日本語化しましょう。

 

エラーメッセージの日本語化

config/app.phpにlocale,  fallback_localeを設定します。

 

日本語用言語ファイルを作成します。とりあえず英語ファイルをコピーしましょう。

コピーした言語ファイル、ja/validation.phpを翻訳していきましょう。翻訳済みメッセージはLaravelの公式ドキュメントに用意されていますので、そちらをコピペします。さあ、もう一度エラーを起こしてみます。

日本語になりました。しかし、attributeがまだ英語です。attributeを日本語化します。

validation.php追記

 

出来ました!

 

バリデーションメッセージはリクエスト毎にオーバーライドすることも可能です。

MembersRequest.php

このリクエストだけメッセージを変えたい、というときはこちらで対応してください!

 

Laravelカテゴリの最新記事