Laravel5.7 バリデーションのエラーメッセージをカスタマイズしたいと思います。
複雑なことやってんのかな? いえ、こんなに奇怪なことはやってません。
まず、app/Http/Requests 配下にフォームリクエストのCompanyRequest.phpがあります。
namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class CompanyRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'company_name' => 'required', 'agent_name' => 'required', ]; } }
この状態だと、fieldの値がnullだと、「The ${value} field is required.」とアラートメッセージが表示されます。
公式ドキュメントバリデーション(https://readouble.com/laravel/5.7/ja/validation.html)のページ中段にあるエラーメッセージのカスタマイズを実装します。
public function rulesの下、overrideするメッセージを書きます。
適当に日本語で、「会社名を入力してください」「代理店名を入力してください」としておきましょう。
namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class CompanyRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'company_name' => 'required', 'agent_name' => 'required', ]; } public function messages() { return [ 'company_name.required' => '会社名を入力してください', 'agent_name.required' => '代理店名を入力してください', ]; } }
日本語で表示されるようになりました。
おお、割と簡単だった。