Laravel L5.5 基于变量的动态请求验证
Laravel L5.5 dynamic request validation that depends on variable
在我的控制器中,我有类似的东西:
switch ($type)
{
case '1':
$validation_rules = [
'a' => 'required',
'b' => 'required',];
break;
case '2':
$validation_rules = [
'd' => 'required',
'j' => 'nullable|numeric',];
break;
case '3':
$validation_rules = [
't1.x' => 'required|numeric',
't1.y' => 'required|numeric',];
break;
}
$request->validate($validation_rules);
但我不喜欢这个,因为它占用了我的控制器。
我正在寻找一种使用请求验证的方法。
类似的东西将是我的目标:
public function store(XXRequest $request)
并将验证逻辑放入其中。
创建一个新的请求文件:
php artisan make:request SomeRequest
将逻辑放入rules()
方法中:
public function rules()
{
switch ($this->type)
{
case '1':
$validation_rules = [
'a' => 'required',
'b' => 'required',];
break;
case '2':
$validation_rules = [
'd' => 'required',
'j' => 'nullable|numeric',];
break;
case '3':
$validation_rules = [
't1.x' => 'required|numeric',
't1.y' => 'required|numeric',];
break;
}
return $validation_rules;
}
然后使用它:
public function store(SomeRequest $request)
https://laravel.com/docs/5.5/validation#form-request-validation
在我的控制器中,我有类似的东西:
switch ($type)
{
case '1':
$validation_rules = [
'a' => 'required',
'b' => 'required',];
break;
case '2':
$validation_rules = [
'd' => 'required',
'j' => 'nullable|numeric',];
break;
case '3':
$validation_rules = [
't1.x' => 'required|numeric',
't1.y' => 'required|numeric',];
break;
}
$request->validate($validation_rules);
但我不喜欢这个,因为它占用了我的控制器。 我正在寻找一种使用请求验证的方法。
类似的东西将是我的目标:
public function store(XXRequest $request)
并将验证逻辑放入其中。
创建一个新的请求文件:
php artisan make:request SomeRequest
将逻辑放入rules()
方法中:
public function rules()
{
switch ($this->type)
{
case '1':
$validation_rules = [
'a' => 'required',
'b' => 'required',];
break;
case '2':
$validation_rules = [
'd' => 'required',
'j' => 'nullable|numeric',];
break;
case '3':
$validation_rules = [
't1.x' => 'required|numeric',
't1.y' => 'required|numeric',];
break;
}
return $validation_rules;
}
然后使用它:
public function store(SomeRequest $request)
https://laravel.com/docs/5.5/validation#form-request-validation