在Laravel中将多个图像路径存储到数据库中

时间:2020-07-25 10:01:11

标签: php laravel laravel-7

Laravel 7. PHP 7.4。

嗨! 我已经在我的网站上填写表格。在许多字段中,只有一个字段可让用户允许上传多个图像。我想将所有图像的路径保存到数据库中,以便可以将它们显示回刀片文件中。 我可以上传图像,并且图像存储在本地存储中,但是问题是我只有一条路径,并且已保存到数据库中。

我想将所有路径分别存储到数据库中,以便可以访问它们作为刀片。 我该怎么办?

刀片

<form method="POST" enctype="multipart/form-data" action="{{route('form.multiStepStore')}}">
   @csrf
   <input type="file" class="form-control" name="photos[]" multiple />
......
</form>

控制器

public function multiStepStore(Request $request)
{
    if($request->hasFile('photos')) {
        $allowedfileExtension = ['jpg', 'png', 'jpeg'];
        $files = $request->file('photos');
        foreach ($files as $file) {
            $filename = $file->getClientOriginalName();
            $extension = $file->getClientOriginalExtension();
            $filepath = $filename.'.'.$extension;
            Storage::disk('local')->put($filename.'.'.$extension,  File::get($file));
        }
    $store_seller = new Sellers();
    $store_seller->img_path = $filepath;

    dd($filepath); //Returns only one path out of let's say 3 images
    }
}

2 个答案:

答案 0 :(得分:1)

您需要创建一个数组:

<input type="submit" class="btn btn-success" value="save and close" name="submitbutton">
<input type="submit" class="btn btn-success" value="apply" name="submitbutton">
<input type="submit" class="btn btn-success" value="save and new" name="submitbutton">
<input type="submit" class="btn btn-success" value="save and search" name="submitbutton">
            

答案 1 :(得分:0)

尝试这样-

public function multiStepStore(Request $request)
    {
        $images[]= Null; // $images array
        if($request->hasFile('photos')) {
            $allowedfileExtension = ['jpg', 'png', 'jpeg'];
            $files = $request->file('photos');
            foreach ($files as $file) {
                $filename = $file->getClientOriginalName();
                $extension = $file->getClientOriginalExtension();
                $filepath = $filename.'.'.$extension;
                Storage::disk('local')->put($filename.'.'.$extension,  File::get($file));
                array_push($images, $filepath);  
            }
            $store_seller = new Sellers();
            $store_seller->img_path = $filepath;
    
        dd($images); //It will returns array with 3 images.
        }
    }