Laravel验证复选框

时间:2016-05-20 11:19:53

标签: php validation laravel checkbox

我正在使用laravel register功能注册用户。我添加了一个复选框,用户需要接受条款和条件。我只想在选中复选框时注册用户。我可以在laravel中使用“必需”验证吗?这是我的验证功能:

 return Validator::make($data, [
        'firstName' => 'required|max:255',
        'lastName' => 'required|max:255',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|confirmed|min:6',
        'checkbox' =>'required',
    ]);

当我使用这样的函数时,即使选中了复选框,laravel也会为复选框提供所需的错误。

这是复选框的html

<input type="checkbox" name="checkbox" id="option" value="{{old('option')}}"><label for="option"><span></span> <p>Ik ga akkoord met de <a href="#">algemene voorwaarden</a></p></label>

我希望你们能帮助我!

5 个答案:

答案 0 :(得分:37)

使用accepted规则。

  

验证字段必须为yes,on,1或true。这有助于验证“服务条款”的接受程度。

您案例的样本:

 return Validator::make($data, [
    'firstName' => 'required|max:255',
    'lastName' => 'required|max:255',
    'email' => 'required|email|max:255|unique:users',
    'password' => 'required|confirmed|min:6',
    'checkbox' =>'accepted'
]);

答案 1 :(得分:8)

它会起作用,只需确保输入值不是空字符串或false。只要键是输入名称属性的值,'checkbox'=&gt;'required'就可以了。

答案 2 :(得分:4)

我只是非常沮丧,因为我正在使用的代码将复选框值作为布尔值返回。

如果您遇到类似情况,可以使用以下规则:

[
 'checkbox_field' => 'required|in:1',
]

答案 3 :(得分:2)

使用 required_without_all 复选框:

return Validator::make($data, [
        'firstName' => 'required|max:255',
        'lastName' => 'required|max:255',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|confirmed|min:6',
        'checkbox' =>'required_without_all',
    ]);

参考:https://laravel.com/docs/5.1/validation#available-validation-rules

答案 4 :(得分:1)

您的验证规则必须符合您的html表单字段的name属性:

 return Validator::make($data, [
        'firstName' => 'required|max:255',
        'lastName' => 'required|max:255',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|confirmed|min:6',
        'option' =>'required', //not checkbox
    ]);