我如何验证'我的表单中的两个复选框中至少有一个已经过检查' 我知道其他方式,但我想知道是否有验证规则这在laravel?
答案 0 :(得分:1)
在Laravel
中,有一种方法可以要求使用accepted检查复选框字段,它的作用是,验证字段必须为yes,on或1. / p>
但您有不同的要求,在这种情况下,您可以使用以下内容添加自定义rule
:
// You may keep this code in your class before validation inside the method
Validator::extend('isOneChecked', function($attribute, $value, $parameters)
{
return ($value || Input::has($parameters[0])) ? TRUE : FALSE;
});
现在您可以使用此rule
,例如,如果您的某个复选框的名称为checkbox1
,而另一个名称为checkbox2
,则使用以下内容:
$rules = array (
// other rules...
'checkbox1' => 'isOneChecked:checkbox2',
);
答案 1 :(得分:1)
是的,我认为这就是你要找的东西:
$rules = array(
'checkbox1' => 'required_without:checkbox2', //require if checkbox2 miss
'checkbox2' => 'required_without:checkbox1', //require if checkbox1 miss
);
因此,如果错过了两个复选框,验证器将失败。
<强> required_without:FOO,酒吧,... 强> 只有在不存在任何其他指定字段时,才能使用验证字段。