如何在数据库Laravel中存储多个图像

时间:2019-06-28 10:43:03

标签: php laravel laravel-5 eloquent

我正在尝试在数据库中存储多个图像,并在视图中显示它们。我有相关的产品表和图像表,在图像表中有一个外键名为(图像)。到目前为止,出现此错误@Injectable() export class ErrorHandlerService extends ErrorHandler { ................... ................... handleError(error: Error | HttpErrorResponse) { //i need to get the values from LINE 1 & LINE 2 here.. } }

这是密码

控制器

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

Product.php

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

Images.php

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

1 个答案:

答案 0 :(得分: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(); 

希望有帮助

如有任何问题,请敬请评论