有没有办法将表单请求传递给自定义请求以验证数据
问题描述:
I'm trying to validate four forms in one controller in laravel, how do i pass the requests coming from different forms to my custom requests depends on the form.
if ( file_exists(base_path().'/App/'.$request->program_type.'.php')) {
$formRequest = 'App\Http\Requests\\'.$request>program_type.'FormRequest';
$validated = $formRequest::validate($request);
}
}
我正在尝试在laravel中的一个控制器中验证四个表单,如何传递来自不同表单的请求 我的自定义请求取决于表单。 p>
if(file_exists(base_path()。'/ App /'.$ request-> program_type。'。php')){
$ formRequest = 'app \ Http \ Requests \\'。$ request> program_type.'FormRequest';
$ validated = $ formRequest :: validate($ request);
}
}
代码> pre>
div>
答
I would recommend Form Request Validation.
You can specify different rules depending on the parameter sent in the form. For example:
public function rules()
{
$formType = $this->get('formType');
if ($formType == 1) {
$rules = $this->formOneRules();
} elseif ($formType == 2) {
$rules = $this->formTwoRules();
} elseif ($formType == 2) {
$rules = $this->formThreeRules();
} else {
$rules = $this->formFourRules();
}
return $rules;
}
private function formOneRules()
{
return [
//some rules
];
}
private function formTwoRules()
{
return [
//some rules
];
}
private function formThreeRules()
{
return [
//some rules
];
}
private function formFourRules()
{
return [
//some rules
];
}
So in your form, send some kind of parameter like formType
.
Of course, instead of if-else
you can use a switch
statement.