【问题标题】:How can we do custom validation for multi dimensional array in laravel 5.3我们如何在 laravel 5.3 中对多维数组进行自定义验证
【发布时间】:2017-04-10 15:12:38
【问题描述】:

我在 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. ) 

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.3


    【解决方案1】:

    要单独验证带有自定义错误消息的所有字段,手动创建验证器是最好的解决方案......

    第一步:

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

    第二步:

    添加一个方法(假设方法名称为 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 !!";
    
        }
    
    
    
    
    }
    

    希望它会起作用

    【讨论】:

      猜你喜欢
      • 2014-01-28
      • 2017-11-19
      • 1970-01-01
      • 2012-01-08
      • 2017-10-16
      • 2017-06-01
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多