Laravel 5.2验证required_without超过2个字段失败

时间:2016-03-31 10:48:11

标签: php laravel-5.2 laravel-validation

我有一个带有复选框和文本输入的表单。

在每组复选框中,我想要验证,至少必须选中一个复选框。我做了这样的验证规则:

$validRules = [
    "check1" => "required_without:check2,check3,check4,check5",
    "check2" => "required_without:check1,check3,check4,check5",
    "check3" => "required_without:check2,check1,check4,check5",
    "check4" => "required_without:check2,check3,check1,check5",
    "check5" => "required_without:check2,check3,check4,check1",
    //more rules...
];

我需要实现的是仅在没有选中复选框的情况下获取错误,但如果检查了一个,两个或更多,则没有错误。

当我提交表单时,如果未全部选中,则验证会抛出验证错误。我的规则是错的还是这个错误?

1 个答案:

答案 0 :(得分:2)

将required_without更改为required_without_all:

$validRules = [
    "check1" => "required_without_all:check2,check3,check4,check5",
    // the rest of your rules
];

或者,如果您使用数组作为复选框名称,例如

<input type="checkbox" name="checkbox[]" value="1">
<input type="checkbox" name="checkbox[]" value="2">

您可以通过以下方式使用其中一个:

$validRules = [
    'checkbox' => 'required'
];