Как удалить и отменить связь нескольких изображений в формате json - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть несколько изображений, сохраненных в базе данных, как это.

["7541556437392.JPG","9741556437392.JPG"]

image

Я пытаюсь передать json decode и параметр изображения, которые хранятся в базе данных, но я получаю сообщение об ошибке

Преобразование массива в строку

мой контроллер удаления

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);
    }
}

Я хочу удалить все изображения, когда удаляю пост, связанный с изображениями, которые. Как исправить мою проблему?

1 Ответ

1 голос
/ 28 апреля 2019

Поскольку ваш JSON представляет массив, вам нужно перебирать его элементы.Попробуйте это:

foreach (json_decode($post->image, true) as $image) {
    $this->removeImage($image);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...