假设,我有一个请求对象,它发送
[
a => 0,
b => 0
]我想要一个验证,这将导致一个错误,因为a和b都是0。我至少需要一岁。我怎么能做到呢?另一项工作如:
[
a => 0,
b => 1
]它应该过去
发布于 2019-09-06 09:32:34
对于这种过于特殊的情况,您可以使用自定义规则。
$request->validate([
'a' => [
'integer',
'between:0,1',
function ($attribute, $value, $fail) use ($request) {
if (!$value && !$request->b) {
$fail($attribute.' is invalid.'); //you can customize the message here
}
}
],
'b' => 'integer|between:0,1'
]);规则只能在一条上,因此用户不会收到2条错误消息。
发布于 2019-09-06 09:26:47
有一个叫做“不同”的验证规则。
假设你可以这样用它
$request->validate([
'a' => 'different:b',
'b' => 'different:a'
]);您可以将它们与整数组合起来,并在规则之间进行组合:
$request->validate([
'a' => 'integer|between:0,1|different:b',
'b' => 'integer|between:0,1|different:a'
]);我还没有试过这个,但是您可以在文档中看到它:https://laravel.com/docs/5.8/validation#rule-different
https://stackoverflow.com/questions/57819010
复制相似问题