如果另一个字段与同一值不同,则 Laravel 将字段验证为某个值



在我的表单中,我让用户选择两个国家,现在这两个国家不能为空意味着用户必须在两个不同的选择中选择两个,并且其中一个字段必须是 让我们说"英格兰" 如果字段 1 是英格兰,那么字段 2 必须是必需的,但如果它等于"英格兰"并不重要, 如果字段 1 不等于"英格兰",则必须要求字段 2 并且等于"英格兰"?

我认为是这样的:

$rules =[
'field1' => '', //if this equals 'england' the field2 is just required
'field2' => '' // if field1 is different from 'england' than this field must equal 'england'
];

知道我如何使用拉拉维尔规则做到这一点吗?

我认为这种情况不需要规则。 你可以这样做,(写在$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

最新更新