laravel 任意のフィールドの値が指定したものと一致していない時に除外するバリデーションルールを記載する方法


目的

  • laravelで任意のフィールドの値が指定したものと一致していない時に当該フィールドのバリデートをスキップする方法をまとめる

方法

  • フィールドcheckの値に「true」という文字列以外が格納されたとき以外に、フィールドinput_strの値のバリデーションをスキップしたい時は下記のように記載する。
  • input_strの値のバリデーションルールは「必須」と「文字列であること」とする。
  • 下記はリクエストファイルのrules()メソッドの内容のみ抜粋して記載する。

    HogeRequest.php
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'check' => 'required',
            'input_str' => 'exclude_unless:check,true|required|string',
        ];
    }
    
  • 任意のフィールドの値が指定したものと一致していない時のみ除外してほしいバリデーションルールの頭にexclude_unless:フィールド名,指定された値を記載する。

参考文献