我正在使用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>
我希望你们能帮助我!
答案 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
]);