【问题标题】:Invalid argument supplied for foreach() laravel-5.3为 foreach() laravel-5.3 提供的参数无效
【发布时间】:2016-12-12 14:17:54
【问题描述】:

我的控制器上有这个:

public function store(Request $request)
{
    $images = $request->file('image');
    $file_count = count($images);
    $uploadcount = 0;
    $daily = new Report();

    foreach($images as $image) {    
    $daily = new Report();    
    $destination ='img/report';
    $filename = $image->getClientOriginalName();
    storage::put('img/report/'.$filename,file_get_contents($request->file('image')->getRealPath()));        
    $daily->image = $filename;
    $uploadcount ++;        
    }
    $daily->author = $request->author;
    $daily->desc = $request->desc;
    // $daily->created_at = Carbon::now();
    $daily->save();
if($uploadcount == $file_count){ 
return redirect('/daily');
}else{
return redirect('/daily/create');
}
}

并且浏览器说:调用数组上的成员函数 getRealPath() 我想将多个图像存储到数据库。

这是我的blade.php

<form action="/daily/create" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="_token" value="{{{ csrf_token() }}}">
    {{-- date --}}
    {!! Form::text('date', old('date', Carbon\Carbon::today()->format('d-m-Y')),['class'=>'form-control date-picker']) !!}
    {{-- penulis --}}
    <label for="author">Author :</label>
    <input  name="author" type="text" value="{{ Auth::user()->name }}">
    {{-- textarea --}}
    <label for="desc">Description</label>
    <textarea name="desc" id="" cols="30" rows="10"></textarea>
    {{-- input image --}}
    <div class="file-field input-field">
  <div class="btn">
    <span>File</span>
    <input type="file" name="image[]" multiple>
  </div>
  <div class="file-path-wrapper">
    <input class="file-path validate" type="text" placeholder="Upload one or more files">
  </div>
</div>
<center>
<input type="submit" class="btn">
</center>

    </form>

我应该删除“刀片”图像输入上的“[]”吗? 并在控制器上“阵列”它?我是怎么做到的?

【问题讨论】:

  • 您是否从视图中传递image 数组?
  • $images 不是数组,可以做 dd($images) 看看是什么数据类型
  • @SaumyaRastogi 我不知道,我只是读了这篇文章stackoverflow.com/questions/31468120/… 并按照它然后错误:(
  • 检查输入图像是否是这样的: 输入必须具有数组格式,还要检查表单是否为多部分以将图像传递给控制器
  • @michaeltintiuc 我得到 null 所以“图像”不是数组?

标签: mysql laravel laravel-5.3


【解决方案1】:

在控制器中更改以下代码:

storage::put('img/report/'.$filename,file_get_contents($request->file('image')->getRealPath()));

storage::put('img/report/'.$filename,file_get_contents($image->getRealPath()));

【讨论】:

  • yesssss 非常感谢...但只是图像的姓氏存储到数据库中的所有图像都存储在文件夹中,如果只有 1 个图像名称存储在数据库中,我如何调用所有图像?
  • 但只是图像存储的姓氏到数据库中存储在文件夹中的所有图像,如果只有 1 个图像名称存储在数据库中,我如何调用所有图像
  • 每次都必须在foreach循环中保存。
  • 我在 foreach 和 hust 上添加了这个存储到数据库的姓氏 $daily->image = $filename;
猜你喜欢
  • 1970-01-01
  • 2017-05-03
  • 1970-01-01
  • 2018-12-09
  • 1970-01-01
  • 2015-06-29
  • 2022-01-27
  • 2018-02-26
  • 2017-11-26
相关资源
最近更新 更多