2016-11-25 39 views
0

我在Laravel 5.3中使用了一个2维数组的字段。我希望根据需要验证所有这些值并显示各个错误消息。 我使用的验证在控制器的功能如下我们如何做laravel中的多维数组的自定义验证5.3

$this->validate($request, [ 
      'training_id' =>'required',    
      'survey_name' =>'required', 
      'question.*' =>'required', 
      'answer_option.*.*' =>'required' 
     ], 
     ['question.*.required' => 'The question field is required.', 
     'answer_option.*.*.required' => 'The answer field is required.']); 

在视图页面的同时,我试图来显示所有的错误消息,仅答案的第一行将被验证和其他人则不会。该错误消息是作为

Array ([0] => The question field is required. [1] => The question field is required. [2] => The answer_option.0.0 field is required. [3] => The answer_option.0.1 field is required. [4] => The answer_option.0.2 field is required. [5] => The answer_option.0.3 field is required. [6] => The training id field is required. [7] => The survey name field is required.) 

回答

0

验证所有与单独的定制错误消息的字段,创建验证手动是最好的解决办法....

步骤-1:

use Validator; (after namespace of any controller where validation is needed) 

步骤-2:

添加一个方法(假设方法名称为check_data())。而下面的代码里面将放置....

public function check_data(Request $request){ 

    //Rules for form fields 
    $rules = array(
     'training_id' =>'required', 
     'survey_name' =>'required', 
     'question' =>'required', 
     'answer_option' =>'required' 
    ); 

    //Custom message for individual fields 
    $messages = array(
     'training_id.required' => 'Training Id should not be empty...', 
     'survey_name.required' => 'Survey Name is Essential...', 
     'question.required' => 'Question is urgent...', 
     'answer_option.required' => 'Answer option can be any one but required...' 

    ); 

    $validator = Validator::make($request->all(), $rules, $messages); 

    //Check for validation 
    if ($validator->fails()) { 
     //if validation fails 
     return redirect()->back()->withInput()->withErrors($validator); 
    } else { 
     //Validation is successful and do as you wish 
     return "All data are validated !!"; 

    } 




} 

希望,它将工作

+0

谢谢TASOS K先生编辑正常。 – sabuz