有没有办法将表单请求传递给自定义请求以验证数据

有没有办法将表单请求传递给自定义请求以验证数据

问题描述:

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.