Laravel 5.2如何在文件表格为空的情况下更新表格


Laravel 5.2 How I Can Update Form in Condition The Files Forms is Blank?

Hy。我正在尝试更新我的表单,多次上传。这是工作。但是,每当我试图清空文件表单时,它总是出现:

ProductController.php第160行出现ErrorException:未定义的偏移量:0

好的,现在我有两个(或三个)选项:

  1. 使表单和多次上传分离,因此控制器功能也分离
  2. 编辑了我的代码,但我不知道该在哪里编辑
  3. 建议我,任何事情都会有帮助

这是我的代码(运行良好,除非我没有填写文件表单):

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) {