在 Laravel 7 的 MongoDB 中插入一个 Json 对象

Insert a Json object in MongoDB from Laravel 7

我需要将图像上传到 Google 存储并在 MongoDB.

中插入带有 gcs 图像路径的下面 JSON 对象

图像已成功上传到 GCS,但我无法获取图像的图像 url,也无法更新 mongoDB 中的路径。

JSON 对象格式

{

 "original": "/pictures/1620305924456-74535-605b8a97a02cf2c1",

 "thumbnail": "/pictures/1620305924456-74535-605b8a97a02cf2c1",

 "fileType": "image"

}

谁能帮我实现这个逻辑。

public function store(Request $request)
{
    request()->validate([
        'name' => 'required',
        'imageUrl' => 'required|image|mimes:jpeg,png,jpg|max:2048',
        
    ]);
    
      $disk = Storage::disk('gcs');
      $imagePath = $request->file('imageUrl');
      $imageName = $imagePath->getClientOriginalName();
      $disk->put('pictures', $request->file('imageUrl'));
   
      $player->name ='test';
      $player->imageUrl = [
        'original' => '/pictures/nScT0KD7LoQucnfoFBLFfNAw9pmdfPnvtyC0VHq6.jpg',
        'thumbnail' => '/pictures/nScT0KD7LoQucnfoFBLFfNAw9pmdfPnvtyC0VHq6.jpg',
        'fileType'=> 'image'
      ];

    Appreciation::create($player);

    return redirect()->route('appreciation.index')
                    ->with('success','Record created successfully.');
}

提前致谢

最后我用下面的代码修复了它。

 request()->validate([
        'name' => 'required',
        'imageUrl' => 'required|image|mimes:jpeg,png,jpg|max:2048',
        
    ]);

    $appreciation = new Appreciation();

   
    $appreciation->name = $request->get('name');
    $imagePath = $request->file('imageUrl');
    $imageName = $imagePath->getClientOriginalName();


   
    $disk = Storage::disk('gcs');
    $url = $disk->url('/pictures/'.$imageName);
   $disk->putFileAs('/pictures/', $request->file('imageUrl'), $imageName);

     $data = [
            'original' =>'/pictures/'.$imageName,
            'thumbnail' => '/pictures/'.$imageName,
            'fileType'=> 'image'
          ];
    $appreciation->imageUrl = $data;
  
    $appreciation->save();