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