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


目的

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

方法

  • フィールドcheckの値に「false」という文字列が格納されたときに、フィールド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_if:check,false|required|string',
        ];
    }
    
  • 任意のフィールドの値が指定したものと一致していた時のみ除外してほしいバリデーションルールの頭にexclude_if:フィールド名,指定された値を記載する。

参考文献