为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Laravel 数据库中存储多张图片

如何在 Laravel 数据库中存储多张图片

PHP
catspeake 2021-09-05 20:16:20
我正在尝试在数据库中存储多个图像并在视图中显示它们。我有相关的产品表和图像表,在图像表中我有一个名为(图像)的外键。到目前为止,我收到了这个错误"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');  }图片.php   public function images()   {     return $this->hasMany(Product::class, 'image');    }
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

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


像这样或可能通过面向对象


这将是一个错误


  $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(); 


查看完整回答
反对 回复 2021-09-05
  • 1 回答
  • 0 关注
  • 188 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信