【问题标题】:How to store multiple images in the database Laravel如何在 Laravel 数据库中存储多张图片
【发布时间】:2019-06-28 10:43:03
【问题描述】:

我正在尝试在数据库中存储多个图像并在视图中显示它们。我有相关的产品表和图像表,在图像表中我有一个名为(图像)的外键。到目前为止,我收到此错误"Array to string conversion"

这里是代码

控制器

  public function store(Request $request) 
  { 

    $formInput=$request->all();
    $image=array();
    if($files=$request->file('image')){
        foreach($files as $file){
            $name=$file->getClientOriginalName();
            $file->move('images',$name);
            $image[]=$name;

        }

    }
          product::create(array_merge($formInput,
       ['user_id' => Auth::user()->id,
       'image' => $image

    ])); 
    return redirect()->back(); 

刀片

  <input type="file" name="image[]" multiple class="form-control">

产品.php

   public function products()
 {
    return $this->belongsTo('App\Images', 'image');
  }

Images.php

   public function images()
   {
     return $this->hasMany(Product::class, 'image');
    }

【问题讨论】:

  • 您遇到了什么错误?
  • 问题是它存储一个图像我想存储多个@SimonC​​pan>
  • 好的,这就是您正在经历的行为,而预期的行为是不同的。有错误吗?异常,错误代码等?请求是什么样的? Request 对象是否与 HTTP 请求相同?我们需要更多信息。
  • 这是"Array to string conversion"@SimonC 时出现的错误
  • 你能告诉你从哪里得到“数组到字符串转换”这个错误吗?

标签: php laravel laravel-5 eloquent


【解决方案1】:

据我所知,文件上传没有错误,但在您尝试存储时

像这样或者可能是面向对象的

这将是一个错误

  $CreateArray = array_merge($request->all(), [
    'image' => $image
                ]);

                Model::create( $CreateArray);

因此,如果您要上传多个文件,并且您将获得文件名数组,但您不能将其作为数组存储在数据库中,所以

$CreateArray = array_merge($request->all(), [
    'image' => json_encode($image)
                ]);

                Model::create( $CreateArray);

已编辑

public function store(Request $request) 
  { 

    $formInput=$request->all();
    $image=array();
    if($files=$request->file('image')){
        foreach($files as $file){
            $name=$file->getClientOriginalName();
            $file->move('images',$name);
            $image[]=$name;

        }

    }
          product::create(array_merge($formInput,
       [
'user_id' => Auth::user()->id,
        'image' => json_encode($image)

    ])); 
    return redirect()->back(); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    相关资源
    最近更新 更多