Php laravel中的多文件上载验证
我有多个输入字段,每个字段有多个文件上传Php laravel中的多文件上载验证,php,laravel,validation,multiple-file-upload,Php,Laravel,Validation,Multiple File Upload,我有多个输入字段,每个字段有多个文件上传 <?php for ($i = 0; $i < $total; $i++) { ?> <div class="col-md-3 addedClass"> <label>Vehicle Images</label> <input type="file" name="vehicle_image[{{$i}}][]" multiple="multiple">
<?php for ($i = 0; $i < $total; $i++)
{
?>
<div class="col-md-3 addedClass">
<label>Vehicle Images</label>
<input type="file" name="vehicle_image[{{$i}}][]" multiple="multiple">
@if($errors->has('vehicle_image'))
<span class="help-block">
<strong>{{$errors->first('vehicle_image')}}</strong>
</span>
@endif
</div>
<?php } ?>
在本例中,我有两个带有2/2文件的输入字段。当我尝试验证仅图像的mime类型时,如下所示:
"vehicle_image" => array:2 [▼
0 => array:2 [▼
0 => "citizenship.jpg"
1 => "logo_vehicle.png"
]
1 => array:2 [▼
0 => "ae backend.jpg"
1 => "logo_vehicle.png"
]
]
$this->validate($request,[
'vehicle_image' => 'mimes:jpeg,png,bmp,tiff |max:4096'
],$messages[
// error messages
]);
我有以下错误:
ReservationController.php第67行中的fatalthrowable错误:无法使用[]进行读取
有人能告诉我上面的代码有什么问题吗?
建议:请注意。< /P> < P>尝试删除空白$消息数组,并调用函数<代码>()/<代码>请求的输入。
$rules = [
'vehicle_image' => 'mimes:jpeg,png,bmp,tiff |max:4096'
];
$this->validate($request,$rules);
要显示默认错误消息,您将使用以下方法引发异常:
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
return redirect('VIEWPATH.VIEWNAME')->withErrors($validator)->withInput();
}
然后,要显示错误,您可以在刀片视图或模板中使用以下内容:
@if (count($errors) > 0)
<div class="alert alert-danger alert-dismissable fade in">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<h4>
<i class="icon fa fa-warning fa-fw" aria-hidden="true"></i>
<strong>Error!</strong> See error messages...
</h4>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(计数($errors)>0)
错误查看错误消息。。。
@foreach($errors->all()作为$error)
- {{$error}}
@endforeach
@恩迪夫
或
@if(session()->有('errors'))
×
出现以下错误:
@foreach($errors->all()作为$error)
- {{$error}}
@endforeach
@恩迪夫
只需从输入字段中删除额外的空数组索引即可
<input type="file" name="vehicle_image[{{$i}}]" multiple="multiple">
$this->validate($request, [
'vehicle_image' => 'image|mimes:jpeg,png,jpg,gif,svg|max:4096'
]);
$this->validate$请求[
“车辆图像”=>“图像模拟:jpeg、png、jpg、gif、svg |最大值:4096”
]);
如果删除了$$消息数组,$->验证($Read,[CuffelySimule'=> MIME:MIME:JPEG,PNG,BMP,TIFIN max:4096′);我的代码中没有这个。这是问问题时的错误让我试试这个只是好奇这里的空白数组是故意的吗<代码>车辆图像[{{$i}}][]是,因为通过每个输入字段上载了多个文件。在这种情况下,您可能需要使用自定义规则进行验证,该规则在输入数组中循环,并用另一个循环验证这些概念
<input type="file" name="vehicle_image[{{$i}}]" multiple="multiple">
$this->validate($request, [
'vehicle_image' => 'image|mimes:jpeg,png,jpg,gif,svg|max:4096'
]);