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>
谢谢你,祝你今天愉快!
这里的问题是,当images
数组为空时,您无法访问[0]
索引。然而,你的条件总是真的,这一事实使情况更加复杂。你使用的条件语句在这里是不够的:
isset($images);
这是因为之前您declared
图像。
$images = [];
因此,您需要检查图像阵列的count
。我们可以这样做:
count($images) > 0
所以最后的条件是:
if (!empty($update['images']) && count($images) > 0) {