Hy再次。我试图通过多次上传来更新我的表单。它的工作。但是,每当我试图删除文件格式时,它总是出现:
ProductController.php第160行中的ErrorException:未定义的偏移量:0
好的,现在我有两个(或三个)选项:
这是我的代码(工作得很好,除非我没有填写文件表格):
public function update(Request $request, $id)
{
$update = $request->all();
//dd($update);
$product = Product::find($id);
$picture = '';
$images = [];
if ($request->hasFile('images')) {
$files = $request->file('images');
//dd($files);
foreach($files as $file){
if (isset($file)){
$filename = $file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
$picture = date('His').$filename;
$destinationPath = base_path() . '\public\images/';
$file->move($destinationPath, $picture);
array_push($images, $picture);
}
}
//dd($update);
//dd($images);
}
if (!empty($update['images']) && isset($images)) {
$update['images'] = $images[0];
$update['images2'] = $images[1];
$update['images3'] = $images[2];
$update['images4'] = $images[3];
} else {
unset($product['images'] -> $images);
}
//dd($update);
$product->update($update);
return redirect('product');
}
形式:
<div class="form-group">
{!! Form::label('Images', 'Images:') !!}
{!! Form::file('images[]',null,['class'=>'form-control']) !!}
</div>
谢谢你,祝你有愉快的一天!
答案 0 :(得分:2)
此处的问题是,当您的images
数组为空时,您无法访问[0]
索引。但是,条件始终为真,这一点更加复杂。您使用的条件声明不足:
isset($images);
这是因为之前您有declared
张图片。
$images = [];
所以你想要的是检查images数组的count
。我们可以这样做:
count($images) > 0
所以最后的条件是:
if (!empty($update['images']) && count($images) > 0) {