LoginSignup
0
0

More than 3 years have passed since last update.

【Laravel】バリデーションで任意のフィールドに任意のメッセージを設定する。

Last updated at Posted at 2020-06-08

メモとして残します。

バリデーションで任意のフィールドに任意のメッセージを設定する方法をメモ。
Laravelのバリデーション便利ですが、たまにくどいエラーメッセージになってしまうことがあるため、
任意のメッセージを設定してあげましょう。
ルールごとに設定できるようです。
今回は、個人的に少しくどいエラーメッセージであるrequired_ifのメッセージをいじります。

■やり方

messageメソッドをオーバライドしてあげることで、任意のフィールドに任意のメッセージを設定できる。

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;

class HogeRequest extends FormRequest
{
//・・・・・・・・・省略 

    /**
     * 定義済みバリデーションルールのエラーメッセージ取得
     *
     * @return array
     */
    public function messages()
    {
        return [
            'description.required_if' => trans('validation.required'),// この場合は必須の時のメッセージを表示します。
        ];
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        $rule = [
            'is_public'  => 'required|in:1,0',
            'description'  => 'required_if:is_public,1|max:500',
        ];

        return $rule;
    }
}

■余談

上記の例だと
description属性のルールでrequired_ifを定義しているため、
「is_publicが1なら、descriptionは入力必須です」
みたいなメッセージで、くどいなと思ったため、設定しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0