我在数据库中保存了多个图像,
["7541556437392.JPG","9741556437392.JPG"]
我尝试传递json解码和存储在数据库中的image参数,但是出现错误消息
数组到字符串的转换
我的删除控制器
public function forceDestroy($id)
{
$post = Post::withTrashed()->findOrFail($id);
$post->tags()->detach(); //tag
$post ->forceDelete();
$this->removeImage(json_decode($post->image,true));
Alert::success('Your post has been deleted successfully')->persistent('Close');
return redirect('admins-blogpost?status=trash');
}
我的删除图片方法,在删除与它们相关的信息时,我尝试将图片和图片缩略图取消链接。
public function removeImage($image)
{
if( ! empty($image))
{
$imagePath = $this->uploadPath . '/' . $image;
$ext = substr(strrchr($image, '.'), 1);
$thumbnail = str_replace(".{$ext}", "_thumb.{$ext}", $image);
$thumbnailPath = $this->uploadPath . '/' . $thumbnail;
if(file_exists($imagePath) ) unlink($imagePath);
if(file_exists($thumbnailPath) ) unlink($thumbnailPath);
}
}
我要删除所有与图片有关的帖子时删除所有图片。如何解决我的问题?
答案 0 :(得分:1)
由于您的JSON表示数组,因此您需要遍历其元素。试试这个:
foreach (json_decode($post->image, true) as $image) {
$this->removeImage($image);
}