2016-12-17 71 views
1

我使用laravel 5.3,这是我的片断的视图代码:laravel验证无线电阵列

<tr> 
     <td> 
      <label class="radio-inline"> 
      <input name="val[1]" type="radio" value="1" >Rate 1</label> 
      <label class="radio-inline"> 
      <input name="val[1]" type="radio" value="2" >Rate 2</label> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <label class="radio-inline"> 
      <input name="val[2]" type="radio" value="1" >Rate 1</label> 
      <label class="radio-inline"> 
      <input name="val[2]" type="radio" value="2" >Rate 2</label> 
     </td> 
    </tr> 

和此我在控制器验证:

$rules = array(
    'val[]' => 'required|in:1,2,3,4,5', 
); 

$validator = Validator::make(Input::all(), $rules); 

如果我检查所有无线电和提交表单,误差出现此消息:val []字段是必需的。

如何验证无线电阵列?

更新该解决方案

<tr> 
     <td> 
      <label class="radio-inline"> 
      <input name="val[1]" type="radio" value="1" required="true" >Rate 1</label> 
      <label class="radio-inline"> 
      <input name="val[1]" type="radio" value="2" required="true" >Rate 2</label> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <label class="radio-inline"> 
      <input name="val[2]" type="radio" value="1" required="true" >Rate 1</label> 
      <label class="radio-inline"> 
      <input name="val[2]" type="radio" value="2" required="true" >Rate 2</label> 
     </td> 
    </tr> 

谢来应答者这个问题

回答

1

,您可以尝试如下:

$rules = array(
    'val' => 'required|array', 
    'val.*' => 'required|in:1,2,3,4,5', 
); 
+0

如果我使用'val。*'=>'required | in:1,2,3,4,5',当单选按钮没有选中时,它没有验证,它的通过条件 – sahmada

+0

感谢您的更新,现在,如果我只检查一个收音机,它的通过条件 – sahmada

+0

因为如果一个单选按钮没有被选中,它就不会被传递给服务器。您必须确保数据传递给服务器。可以有两种解决方法 - 一种是使用HTML的“required”属性或默认选中单选按钮。 –

1

只要做到这一点是这样的:

$rules = array(
    'val' => 'required|array', 
    'val.*' => 'required|in:1,2,3,4,5', 
); 

$validator = Validator::make(Input::all(), $rules); 

希望这有助于!

+0

我将我的代码更改为您的建议代码,但不起作用,它没有验证,如果我不检查所有电台 – sahmada

+0

谢谢你的更新,你的建议的结果,,如果我检查一个电台它的通过条件 – sahmada

+0

@sahmada - 这是否正确适合你! –