2017-08-31 62 views
2

我的观点刀片这样的:为什么验证两个复选框在一个表单不工作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' 
     ... 
    ]; 
} 

如果代码执行,验证不行

似乎没有消息。无论在复选框上,验证过程是不同的?

我该如何解决这个问题?

+0

请点击此链接(https://stackoverflow.com/questions/37345363/laravel-validation-checkbox)希望这对你的工作 –

+0

@AddWeb解决方案私人有限公司,我看到该链接。但它没有帮助我。我的问题是我有2复选框 –

+0

等待我会检查它 –

回答

0

我遇到了这个问题。我认为这是因为当复选框未被选中时,它不会包含在请求中。如果未包含在请求中,Laravel将不会尝试验证它。

我的解决方案是在实际复选框之前添加一个带有默认值的隐藏输入。

{{Form::hidden('term', false)}} 
{{Form::checkbox('term', 1, false, array('id'=>'term'))}} I aggree 

这是关于此行为的related question

0

在处理复选框时,您可以用accepted代替required规则。

由于从文档中指出:

下验证的领域一定是肯定的,对,1,或真。这对于验证“服务条款”接受是有用的 。

相关问题