我可以存儲和刪除所有多個圖像。但是更新和刪除舊圖像時我仍然有問題。更新新映像時,我的代碼仍然無法刪除oldimage。我的更新控制器,我使用handlerequest方法來存儲圖像,其中oldImage是數(shù)據(jù)庫中的變量,它將與新圖像進行比較。如果不相同,則刪除舊圖像。public function update(Requests\UpdatePostRequest $request, $id){ $post = Post::findOrFail($id); $oldImage = $post->image; $data = $this->handleRequest($request); $post->update($data); if($oldImage != $post->image) { foreach (json_decode($post->image, true) as $oldImage) { $this->removeImage($oldImage); } } if($request->submitbutton =='Publish') { Alert::success('Your post was updated successfully')->persistent('Close'); return redirect(route('admins-blogpost.index')); } if($request->submitbutton =='Save Draft') { Alert::success('Your draft was updated successfully')->persistent('Close'); return redirect(route('admins-blogpost.index')); }}我的handlerequest方法用于存儲多個圖像,該方法正在使用store方法。所以這個問題不在這里。private function handleRequest($request){ $data = $request->all(); if($request->hasFile('image')) { $images = $request->file('image'); foreach($images as $key=>$image){ $fileName = $image->getClientOriginalName(); $destination = $this->uploadPath; $successUploaded = $image->move($destination, $fileName); if($successUploaded) { $width = config('cms_blog.image.thumbnail.width'); $height = config('cms_blog.image.thumbnail.height'); $extension = $image->getClientOriginalExtension(); $thumbnail = str_replace(".{$extension}", "_thumb.{$extension}", $fileName); Image::make($destination . '/' . $fileName) ->resize($width,$height) ->save($destination . '/' . $thumbnail); $datax[] = $fileName; } $data['image'] = json_encode($datax); } } return $data;}如何解決我的問題,以便在舊圖像與新圖像不相同時刪除舊圖像?
2 回答

慕碼人2483693
TA貢獻1860條經(jīng)驗 獲得超9個贊
在您刪除圖像的for循環(huán)中,我相信您想遍歷$oldImage,而不是遍歷$post->image:
foreach (json_decode($oldImage, true) as $item) {
$this->removeImage($item);
}

開滿天機
TA貢獻1786條經(jīng)驗 獲得超13個贊
在單個列上存儲多個圖像名稱不是一個好主意。我建議您創(chuàng)建另一個表post_images或其他內(nèi)容。
并從posts表和post_images表創(chuàng)建hasMany關(guān)系。這樣您在這里就有了很大的靈活性。另外,您可以創(chuàng)建多態(tài)關(guān)系以將同一圖像模型與多個模型一起使用。
- 2 回答
- 0 關(guān)注
- 152 瀏覽
添加回答
舉報
0/150
提交
取消