[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」で検索を。