在我的表格中,我让用户选择两个国家,现在这两个国家一定不能为空,这意味着用户必须在两个不同的选择中选择两个,并且如果field1是england,则其中一个字段必须说“ england”必须填写field2,但它是否等于“ england”,如果field1不等于“ england”,则不重要,必须比field2等于“ england”?
我认为是这样的
$rules =[
'field1' => '', //if this equals 'england' the field2 is just required
'field2' => '' // if field1 is different from 'england' than this field must equal 'england'
];
我知道如何使用laravel规则做到这一点吗?
答案 0 :(得分:1)
我认为您不需要针对这种情况的规则。
您可以这样操作(写在$this->validate($rule)
下):
if ($request->field1 == 'england' && empty($request->field2))
return 'Field2 required when field1 is england';
if ($request->field1 != 'england' && $request->field2 != 'england')
return 'Field2 must be "england" when field1 different from "england"';
在laravel中有一个自定义验证,但我认为它适用于1个参数。 https://laravel.com/docs/5.7/validation#custom-validation-rules