验证动态单选按钮Laravel 5

时间:2016-09-29 13:38:21

标签: laravel laravel-5 laravel-5.2

我想验证我的动态无线电输入。在我看来,我有这个 view.blade.php:

echo "<span class='error'>".$errors->first('sar')."</span><td></tr>";

for($i=1; $i<11; $i++){
echo"<td>"; ?>
<input class='radio-inline' name='sar[<?php echo $number; ?>]' type='radio' value='<?php echo $i; ?>' ><?php    echo "</td>";} 

控制器:

//valida pontas -- 
$this->validate($request, [
    'sar' => 'required'
]);

我尝试过:内部视图$vf = 'sar['.$fcid.']'; $errors->first($vf)和我的控制器内部:'sar[$i]' => 'required'

因此for循环动态创建名称为&#39; sar [1]&#39;在我的这个验证我不知道如何验证每个动态创建的无线电输入......任何关于如何处理这个问题的想法将不胜感激..

2 个答案:

答案 0 :(得分:2)

使用

进行更改
//valida pontas -- 
$this->validate($request, [
    'sar.*' => 'required'
]);

这适用于Laravel 5.2或更高版本

答案 1 :(得分:0)

Ronak提交的验证规则是正确的:

$this->validate($request, [
    'sar.*' => 'required'
]);

但是,如果您没有选择单选按钮,则根本不会发送输入,因此无法对其进行验证。绕过此问题的一种方法是在无线电输入之前放置具有相同名称和空值的隐藏输入。所以你的HTML会变成:

echo "<span class='error'>".$errors->first('sar')."</span><td></tr>";
for($i=1; $i<11; $i++){
    echo"<td>"; ?>
    <input type="hidden" name='sar[<?php echo $number; ?>]' value=''>
    <input class='radio-inline' name='sar[<?php echo $number; ?>]' type='radio' value='<?php echo $i; ?>' ><?php    
    echo "</td>";
}