Php Laravel验证规则“;不同的;
我很难理解这个验证规则。基本上,我有两个字段,它们都是可为空的。但是,一旦两个字段都被填充,它们就必须彼此不同。例如,我不能在这两个选项中都输入Php Laravel验证规则“;不同的;,php,laravel,validation,Php,Laravel,Validation,我很难理解这个验证规则。基本上,我有两个字段,它们都是可为空的。但是,一旦两个字段都被填充,它们就必须彼此不同。例如,我不能在这两个选项中都输入test。如果我同时填写两个字段,则此验证规则有效 但是,当我只填写一个字段时,验证失败,并显示以下消息,说明这些字段应该彼此不同: The name and replace must be different. 我检查了提交给我的表单请求的内容,如下所示: "name" => null "replace" => "test" 我的验证规
test
。如果我同时填写两个
字段,则此验证规则有效
但是,当我只填写一个字段时,验证失败,并显示以下消息,说明这些字段应该彼此不同:
The name and replace must be different.
我检查了提交给我的表单请求的内容,如下所示:
"name" => null
"replace" => "test"
我的验证规则的精简版本:
public function rules()
{
return [
'name' => 'different:replace|nullable',
'replace' => 'different:name|nullable',
];
}
有人能解释一下我对这个验证规则的误解吗?
null
值不计入此规则吗?如果您查看illumb\Validation\Concerns\ValidatesAttributes
中的validateDifferent
函数(供应商/laravel/framework/src/illumb/Validation/Concerns/ValidatesAttributes.php:432
)规则:
正如您在if案例中看到的,如果另一个值为null,则规则将失败
if (is_null($other) || $value === $other)
如果您查看
illumb\Validation\Concerns\validateAttribute
(vendor/laravel/framework/src/illumb/Validation/Concerns/validateAttribute.php:432
)中的validateDifferent
函数,规则:
正如您在if案例中看到的,如果另一个值为null,则规则将失败
if (is_null($other) || $value === $other)
我应该在那里查一下。。至少学到了一些新的东西,谢谢:)@Hardist Np祝你有愉快的一天!:)我应该在那里查一下。。至少学到了一些新的东西,谢谢:)@Hardist Np祝你有愉快的一天!:)