我是新来的Laravel。现在,我想创建产品,并使用dropzone.js上传多张图片。我有Product表(名称,sku,条形码,价格,main_image等)来存储产品,而Product_images则用于存储产品图像。model_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
)。
尊重所有评论
非常感谢!
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');