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

时间:2018-10-19 08:21:09

标签: php validation rules

在我的表格中,我让用户选择两个国家,现在这两个国家一定不能为空,这意味着用户必须在两个不同的选择中选择两个,并且如果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规则做到这一点吗?

1 个答案:

答案 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