我的请求中有两个整数字段需要验证。min_height
和 max_height
,两者都是可选的,但具有 min_height
低于 max_height
和 max_height
胜过 min_height
.
使用验证规则如下
'min_height' => ['nullable', 'integer', 'lt:max_height'],
'max_height' => ['nullable', 'integer', 'gt:min_height'],
当其中一个存在而另一个不存在时,这当然会给我带来错误,因为当 lt
gt
校验规则检查 null
请求字段。
我怎么能有 lt
gt
有什么方法可以用内置的验证规则实现这个功能,或者我必须实现一个自定义的验证器?
可能我说得不够清楚。我的两个字段都是可空的,而且是相互独立的。因此,它是确定的,收到 min_height
而不是 max_height
反之亦然:这就使得这样的规则 required_with
不适合我的用例。
你可以尝试使用 所需的_with 条件规则。例如,你的条件是
'min_height' => 'required_with:max_height|lt:max_height',
'max_height' => 'required_with:min_height|gt:min_height',
您可以使用 sometimes
在第一个参数上,看一看。https:/laravel.comdocs7.xvalidation#conditionally-adding-rules。