[PHP][Laravel] Laravelの条件付きvalidation(入力値を判定してバリデーションを追加するか判断する)

バージョン

Laravel 6.0

概要

例えば、A項目の値がtrueだった時のみB項目を必須項目にするといったケース。

コード

■HogeRequest.php

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        $data = $this->all();

        return self::getRules($data['data_A']);
    }

    public static function getRules($data_a)
    {
        // 共通的なバリデーション
        $rules = [
            'price'        => 'required|integer|min:0',
            'remarks'   => 'max:100',
        ];

        if ($data_a) {
            // data_Aがtrueだった時のみdata_Bを必須に
            $rules['data_B'] = 'required';
        }

        return $rules;
    }

単一カラムでの条件付きバリデーションは「laravel validation sometimes」で検索を。



速習 Laravel 6 速習シリーズ

速習 Laravel 6 速習シリーズ