使用dropzone上传多个图像时获取id产品laravel

问题描述 投票:0回答:1

我是新来的Laravel。现在,我想创建产品,并使用dropzone.js上传多张图片。我有Product表(名称,sku,条形码,价格,main_image等)来存储产品,而Product_images则用于存储产品图像。enter image description heremodel_id是idProduct。但是我不知道在创建新产品时将其存储]

我的路线

Route::post('/products/upload/dropzone', 'ProductController@uploadDropzone')->name('be.upload.dropzone');
Route::post('/products/store', 'ProductController@store')->name('be.product.store');

我的控制器-上传图像

public function uploadDropzone(Request $request) {
        $image = $request->file('others_image');
        if ($image) {
            $dropzone = new ProductImage;
            $imageName = $image->getClientOriginalName();
            $dropzone->image_name = $imageName;
            $image->move(realpath(public_path('uploads/images/product/product')), $imageName);
            $dropzone->image_path = 'uploads/images/product/product/'.$imageName;
            $dropzone->model = 'Product';
            $dropzone->model_id = ??;

            $dropzone->save();
        }

        return response()->json(['message' => 'Images uploaded successfully!']);
    }

脚本拖放区

Dropzone.autoDiscover = false;
        var myDropzone = new Dropzone("div#dropzone_images", {
            url: "{{ route('be.upload.dropzone') }}",
            sending: function(file, xhr, formData){
                formData.append('_token', $('meta[name="csrf-token"]').attr('content'));
            },
            paramName: 'others_image',
            addRemoveLinks: true,
            acceptedFiles: 'image/*',
            dictRemoveFile: 'Xóa ảnh',
        });

我已保存产品信息和产品图像,但idProduct未保存(model_id)。

尊重所有评论

非常感谢!

php laravel dropzone.js
1个回答
0
投票

Controller

 public function uploadDropzone(Request $request) {
            $image = $request->file('others_image');
            if ($image) {
                $imageName = $image->getClientOriginalName();
                $image->move(realpath(public_path('uploads/images/product/product')), $imageName);
                $path = 'uploads/images/product/product/'.$imageName;

                $productImage = ProductImage::create([
                    'model' => 'Product',
                    'image_name' => $imageName,
                    'image_path' => $path
                ]);

                $request->session()->put('imageId', $productImage->id);
            }
            return response()->json(['message' => 'Images uploaded successfully!']);
        }

现在位于create.blade.php

 $productImageId = session()->get('imageId');

        $productImage = ProductImage::find($productImageId);

        $productImage->update([
            'model_id' => $id
        ]);

session()->forget('imageId');

https://laravel.com/docs/6.x/session

© www.soinside.com 2019 - 2024. All rights reserved.