首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >laravel-5.8:为foreach()提供的参数无效

laravel-5.8:为foreach()提供的参数无效
EN

Stack Overflow用户
提问于 2019-08-31 14:41:27
回答 1查看 137关注 0票数 0

您好,我用Laravel制作了一个表单来上传照片,但当我打开表单时,它显示错误:为foreach()提供的参数无效。

刀片文件:

代码语言:javascript
复制
<form method="POST" action="{{ route('admin.product.alternateimages') }}" enctype="multipart/form-data" class="add-new-post">
    @csrf
    <strong class="text-muted d-block mb-2 mt-5">Upload Product Image</strong>
    <div class="input-group mb-3">
      <div class="input-group input-group-seamless">
        <input type="file" name="product_alt_img[]" class="form-control mb-2 btn btn-sm btn-outline-primary mr-1 @error('product_image') is-invalid @enderror" value="{{ old('product_image') }}" id="" placeholder=""> </div>
        @error('product_image')
          <div class="small text-danger">{{ $message }}</div>
        @enderror
    </div>
</form>

功能:

代码语言:javascript
复制
    public function alternateimages(Request $request)
    {
        $altimgs = new Product;
        $altimgs->product_id = $request->product_id;
        $files = $request->file('product_alt_img');
        foreach ($files as $file) {
          $images = $file->getClientOriginalName();
          $file->move(public_path('images/backend_images/product_images'), $images);
          $altimgs->product_alt_img = $images;
        }
        $altimgs->save();

        return redirect()->back()->with('flash_message_success', 'Product Images has been added successfully');   
    }
EN

回答 1

Stack Overflow用户

发布于 2019-08-31 14:49:02

如果要上载单个文件,则可能需要将product_alt_img[]更改为product_alt_img

代码语言:javascript
复制
<input type="file" name="product_alt_img" class="form-control mb-2 btn btn-sm btn-outline-primary mr-1 @error('product_image') is-invalid @enderror" value="{{ old('product_image') }}" id="" placeholder="">

否则,如果希望上传多个文件,您可能必须修改控制器方法。

代码语言:javascript
复制
 public function alternateimages(Request $request)
{
    $altimgs = new Product;
    $altimgs->product_id = $request->product_id;

    //fetch an array of product_alt_img
    $files = $request->product_alt_img;

    //go over each Illuminate\Http\UploadedFile instance
    foreach($files as $file)
    {
        $image = $file->getClientOriginalName();

        ....
    }

    ....  
}

注:一个更有说服力的解决方案是有一个单独的表来存储产品图像

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57735797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档