2017-08-04 91 views
0

我有一个两部分的表格A & B如何通过Laravel验证确认至少一个部分的验证

A有以下字段。 名称,结果

B有以下字段。 name1,result1

不,我想确保用户填写至少一个部分以继续。

这就是我想要做的。

$this->validate($request, [ 
       'name' => 'required', 
       'result' => 'required', 
       'name1' => 'required', 
       'result1' => 'required' 
]); 

这验证了两个部分字段,但我想至少验证一个部分。

+0

对于每个部分都有两种形式,以及两种不同的操作,您发布的内容会更有意义吗? – sisve

+0

是的,它可以做到,但这是可能的,我想要做什么? –

回答

1

一个选项可能是你可以检查某些输入是否为空然后对每个检查进行验证,但它可能不是一个好方法。

你也可以尝试一下,这是一种更简洁的方式。

$this->validate($request, [ 
       'name' => 'required_without:name1,result1', 
       'result' => 'required_without:name1,result1', 
       'name1' => 'required_without:name,result', 
       'result1' => 'required_without:name,result' 
      ]); 
1

您可以使用Required Without

由于每documentation

$input = $request->all(); 


    if(array_key_exists('name', $input) && array_key_exists('name1', $input)){ 
     echo "Either of the section is required"; 
    } 

    if(array_key_exists('result', $input) && array_key_exists('result1', $input)){ 
     Echo"Either of the section is required"; 
    } 

    $rules = [ 
     'name' => 'required_without:name1,result1', 
     'result' => 'required_without:name1,result1', 
     'name1' => 'required_without:name,result', 
     'result1' => 'required_without:name,result' 
    ]; 



    //validating request agianst rules 
    $validator = Validator::make($input, $rules); 

    //if validation fails, will throw ValidationHttpException 
    if($validator->fails()) { 
     print_r($validator->errors()); 
    }else{ 
     echo "Validation passed"; 
    } 

看看这对你的作品!如果不是,您可以随时使用custom validators

+0

是的,看看它是否有效,并让我知道。 –

+0

通过使用上面的代码,通过语法错误,并通过将引号括在'required_with:result'中,验证不会运行 –

+0

让我试试我的结局。将更新答案 –