为什么验证两个复选框在一个表单不工作laravel?
问题描述:
我的观点刀片这样的:为什么验证两个复选框在一个表单不工作laravel?
...
<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'
...
];
}
如果代码执行,验证不行
似乎没有消息。无论在复选框上,验证过程是不同的?
我该如何解决这个问题?
答
我遇到了这个问题。我认为这是因为当复选框未被选中时,它不会包含在请求中。如果未包含在请求中,Laravel将不会尝试验证它。
我的解决方案是在实际复选框之前添加一个带有默认值的隐藏输入。
{{Form::hidden('term', false)}}
{{Form::checkbox('term', 1, false, array('id'=>'term'))}} I aggree
这是关于此行为的related question。
答
在处理复选框时,您可以用accepted
代替required
规则。
由于从文档中指出:
下验证的领域一定是肯定的,对,1,或真。这对于验证“服务条款”接受是有用的 。
请点击此链接(https://stackoverflow.com/questions/37345363/laravel-validation-checkbox)希望这对你的工作 –
@AddWeb解决方案私人有限公司,我看到该链接。但它没有帮助我。我的问题是我有2复选框 –
等待我会检查它 –