我怎么能做出类似的东西
for($x=0; $x<=14; $x++) {
$this->validate($request, [
'name' => 'required',
'radio_'.$x => 'required',
]);
}
但是我只需要从radio_循环而不是名字。像这样,但错了
$this->validate($request, [
'name' => 'required',
for($x=0; $x<=14; $x++) {
'radio_'.$x => 'required',
}
]);
我的刀片文件,如果有帮助的话。
@for($x = 0; $x <= 14; $x++)
<div class="form-group">
<label for="radio">
<li>@lang('leadersCompetence.questions.'.$x)</li>
</label><br>
@for($i = 0; $i <= 4; $i++)
<label class="radio-inline">
<input type="radio" name="radio_{{$x}}" @if(old('radio_'.$x) == $option[$i]) checked
@endif value="{{$option[$i]}}" required>
{{$option[$i]}}
</label>
@endfor
</div>
@endfor
答案 0 :(得分:5)
您可以通过创建验证数组::
来完成此操作$validate_array = ['name' => 'required'];
for($x=0; $x<=14; $x++) {
$validate_array['radio_'. $x] = 'required';
}
$this->validate($request, $validate_array );
答案 1 :(得分:2)
您可以将值放入 radios 数组中,然后使用
'radios.*' => 'required'
在您的控制器中。
答案 2 :(得分:0)
我会做的是建立一个规则数组并在验证器中使用它。例如:
$rules["name"] = "required";
for($x=0; $x<=14; $x++) {
$rules['radio_'.$x] = 'required',
}
$this->validate($request, $rules);
答案 3 :(得分:0)
不知道laravel但你可以验证两次,然后结合结果。或者您可以在传递验证之前创建该数组,如下所示:
$validationArray['name']= 'required';
for($x=0; $x<=14; $x++) {
$validationArray['radio_'.$x] => 'required',
}
$this->validate($request, $validationArray);
答案 4 :(得分:0)
如您所见,验证参数是一个数组。因此,您可以为无线电创建自定义数组,并将其与其他字段合并:
$ar = array();
for ($x = 0; $x <= 14; $x++) {
array_push($ar, ['radio_' . $x => 'required']);
}
$validator = array_merge($ar, ['name' => 'required']);
$this->validate($request, $validator);
答案 5 :(得分:0)
不需要循环。你可以在下面验证数组
$this->validate($request, [
'name' => 'required',
'radio.* => 'required', // change to "radio_.*" if name is radio_
]);