Bunun en basit yolu önce bilgilerin girilmesi, bilgi girişinden sonra formu post ettirip dönüş sayfasını ayrı bir resim yükleme dropzone sayfası olarak tanımlayabilirsiniz. Dropzone resimleri sayfayı post ettikten sonra yüklemiyor, form sayfasında kendi formu içerisinde post ediyor. Bu yüzden öce formu post edip, sonra resim sayfasını açıp, son post ettiğiniz verinin id değerine göndereceksiniz resimleri.
$model = Model::find(1);
$images = [];
foreach ($request->file('resimler') as $image) {
$file = $image;
$filename = time().'.'.$file->getClientOriginalName();
$path = $file->storeAs('public/rezervasyon_resimleri', $filename);
$mime_type = File::mimeType($file->path());
$size = $file->getSize();
$newImage = new Images;
$newImage->user_id = Auth::id();
$newImage->filename = $path;
$newImage->mime_type = $mime_type;
$newImage->size = $size;
$newImage->original_name = $file;
$newImage->imageable_id = $model->id;
$newImage->imageable_type = get_class($model);
$newImage->save();
$images[] = $newImage;
}
Ben formu post ettikten sonra dropzone resimlerini bu şekilde yüklüyorum. Belki daha kısa yolu vardır ama ben bu şekilde çalıştırıyorum. Modelimin Image modeli ile ilişkisi de şu şekilde:
public function images()
{
return $this->morphMany(Images::class, 'imageable');
}
geçmiş olsun, kolay gelsin..