猿问

如何以json格式删除和取消链接多个图像

我有这样保存在数据库中的多个图像。

["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);

    }

}

我要删除所有与图片有关的帖子时删除所有图片。如何解决我的问题?


隔江千里
浏览 136回答 1
1回答

ibeautiful

由于您的JSON代表数组,因此您需要遍历其元素。试试这个:foreach (json_decode($post->image, true) as $image) {    $this->removeImage($image);}
随时随地看视频慕课网APP
我要回答