Редактировать и удалять содержимое из summernote в laravel - PullRequest
0 голосов
/ 06 апреля 2020

Я создаю контент, используя summernote в laravel. Когда я удаляю контент, изображения в папке не удаляются. И когда я обновляю контент, изображение не заменяется, но добавляются новые изображения.

Я загружен Контроллер.

MyController

public function update($id, Request $request)
{
    $this->validate($request, [
        'judul' => 'required',
        'isi_berita' => 'required|unique:news'
    ]);

    $news = News::find($id);

    $isi_berita = $request->input('isi_berita');
    $dom = new \DOMDocument();
    $dom->loadHtml($isi_berita, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
    $images = $dom->getElementsByTagName('img');

    foreach($images as $img){
        $src = $img->getAttribute('src');
        if(preg_match('/data:image/', $src)){
            preg_match('/data:image\/(?<mime>.*?)\;/', $src, $groups);
            $mimetype = $groups['mime'];
            $filename = uniqid();
            $filepath = ("uploads/news/$filename.$mimetype");
            $image = Image::make($src)->encode($mimetype, 100)->save(public_path($filepath));

            $new_src = asset($filepath);
            $img->removeAttribute('src');
            $img->setAttribute('src', $new_src);
        }
    }
    $isi_berita = $dom->saveHtml();

    $news->judul = $request->judul;
    $news->slug = Str::slug($request->judul);
    $news->isi_berita = $request->isi_berita;

    $news->save();

    alert()->success('Sukses','Berita Berhasil Diupdate');
    return redirect()->route('news');
}

public function destroy($id)
{
    $news = News::find($id);
    $path = public_path('uploads/news/' . $news->isi_berita);

    unlink($path);
    $news->delete();

    alert()->success('Sukses','Berita Berhasil Dihapus');
    return redirect()->route('news');
}

Я надеюсь чтобы найти решение, спасибо.

...