Php 如果不接受其他参数,则需要Laravel\u

Php 如果不接受其他参数,则需要Laravel\u,php,laravel,laravel-5.5,Php,Laravel,Laravel 5.5,我对拉威尔的验证有一些问题。我正在使用必需的\u if验证器 我想要实现的是:当HILIGHTCOLBOOLtrue时,hilightColor应该是必需的,应该是最小值1到最大值5之间的整数 但是当我像上面那样做的时候,它总是返回hilltcolor是bool,当我从hilltcolor中删除整数,min和max时,它工作得很好,但是我需要验证它是否是介于1和5之间的整数。我觉得很奇怪。根据我的评论,我可能会这样做: $rules = [ 'hilightColorBool' =>

我对拉威尔的验证有一些问题。我正在使用必需的\u if验证器

我想要实现的是:当HILIGHTCOLBOOLtrue时,hilightColor应该是必需的,应该是最小值1到最大值5之间的整数


但是当我像上面那样做的时候,它总是返回hilltcolor是bool,当我从hilltcolor中删除整数,min和max时,它工作得很好,但是我需要验证它是否是介于1和5之间的整数。我觉得很奇怪。

根据我的评论,我可能会这样做:

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

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

$request->validate($rules);

试试看,可能有用:`hilightColor=>'必选`如果:hilightColorBool | integer | min:1 | max:5'`不幸的是它不起作用-“验证规则必选(如果至少需要2个参数)。是的,我是根据你的答案来做的,但不是
如果(is(u bool($request->get('hilightColorBool'))
它应该是
if($request['hilightKidsWithNonstandardDiet']==true)
。谢谢。
$request->validate($rules);