我的视图刀片是这样的:
...
<div class="checkbox">
<label>
{{Form::checkbox('is_anonymous', 1, false)}} As anonymous
</label>
@if ($errors->has('is_anonymous'))
<div class="help-block">
<strong>{{ $errors->first('is_anonymous') }}</strong>
</div>
@endif
</div>
<div class="checkbox">
<label>
{{Form::checkbox('term', 1, false, array('id'=>'term'))}} I aggree
</label>
@if ($errors->has('term'))
<div class="help-block">
<strong>{{ $errors->first('term') }}</strong>
</div>
@endif
</div>
我的验证是这样的:
public function rules()
{
return [
'is_anonymous' =>'required',
'term' =>'required'
...
];
}
如果代码已执行,则验证无效
没有出现消息。是否在复选框上验证过程是否不同?
我该如何解决这个问题?
答案 0 :(得分:0)
我遇到了这个问题。我认为这是因为当未选中复选框时,它不会包含在请求中。如果未包含在请求中,Laravel将不会尝试验证它。
我的解决方案是在实际复选框之前添加一个带默认值的隐藏输入。
{{Form::hidden('term', false)}}
{{Form::checkbox('term', 1, false, array('id'=>'term'))}} I aggree
以下是关于此行为的related question。
答案 1 :(得分:0)
处理复选框时,您可以将required
规则替换为accepted
。
如文件中所述:
验证字段必须为yes,on,1或true。这很有用 验证“服务条款”验收。