Laravel required_if 不接受其他参数

Laravel required_if does not accept other parameters

我在 Laravel 的验证方面遇到了一些问题。我正在使用 required_if 验证器。

我想要实现的目标:hilightColorBooltrue 时,hilightColor 应该是required,应该是 integermin:1max:5[= 之间26=].

...
'hilightColorBool' => 'required|boolean',
'hilightColor' => 'required_if:hilightColorBool,1|integer|min:1|max:5'
...

但是当我像上面那样做时,它总是 returns hilghtColor 是布尔值,当我从 hilightColor 中删除整数、最小值和最大值时,它工作正常,但我仍然需要验证它是否有效是1到5之间的整数。我觉得很奇怪。

继续我的评论,我可能会这样做:

$rules = [
    'hilightColorBool' => 'required|boolean',
];

if (is_bool($request->get('hilightColorBool'))) {
    $rules['hilightColor'] = 'required|integer|min:1|max:5';      
}

然后简单地做:

$request->validate($rules);