Membuat Blog dengan Laravel 5.7 dan AdminLTE 3 (14) – Menghapus Post

WordPress-Like Blog Laravel 5.7 and AdminLTE 3 (14) – Menghapus Post

Pada bagian keempat belas ini, kita akan :

  1. Menghapus Post dan Menyimpannya di TrashDelete an Existing Post and put it in the Trash
  2. Menampilkan Post yang Berada di Trash
  3. Menghapus Image dan Thumbnailnya

Menghapus Post

Untuk menghapus post, pertama-tama kita modifikasi resources/views/backend/blog index.blade.php dan tambahkan Form open dan Form close disini :

Selanjutnya, tambahkan kode di destroy() method Backend\BlogController.php

Sekarang coba untuk menghapus satu post dari halaman index :

Membuat Blog dengan Laravel 5.7 dan AdminLTE 3 (14) – Menghapus Post

Aksi ini akan menghapus post dari database.

Kita ingin supaya post tidak langsung terhapus dari database, namun ditampung dulu di Trash. Modifikasi kode dengan menambahkan method soft delete pada tabel post. Buatlah migration di terminal :

Jalankan migrasi dan tambahkan baris berikut di app\Post.php

Sekarang, ketika kita menghapus post, post tersebut tetap ada di dalam tabel, namun field deleted_at nya akan terisi.

Dengan ini, kita dapat menempatkan kembali post yang sudah dihapus apabila kita berubah pikiran. Modifikasi destroy() method di dalam Backend\BlogController.php

Tambahkan message.blade.php di dalam folder backend/blog dan pindahkan bagian message dari index.blade.php ke dalamnya :

Dan gantikan dengan kode baris ini :

Tambahkan route baru di routes/web.php

Modifikasi Backend\BlogController.php dan tambahkan restore() method :

Sekarang,ketika kita menghapus post, sebuah notifikasi dan tombol Undo akan muncul. Jika tombol ini ditekan, post tidak jadi dihapus.

Membuat Blog dengan Laravel 5.7 dan AdminLTE 3 (14) – Menghapus Post 2

Menampilkan Post di Dalam Trash

Kita akan menampilkan post yang sudah dihapus namun masih berada di Trash. Modifikasi index.blade.php :

Buka Backend\BlogController.php dan modifikasi index() method :

Modifikasi index.blade.php, cut kode di antara <table> ke </table> , buat file baru table.blade.php dan paste kode di dalamnya :

Buat file lain, table-trash.blade.php :

Kita perlu menambahkan route untuk force-destroy di routes/web.php

Tambahkan forceDestroy() method di dalam Backend\BlogController.php

Menghapus Image dan Thumbnailnya

Sebelumnya, kita telah berhasil menghapus post. Namun, jika post tersebut memiliki image, kita masih belum menghapusnya. Kita akan atasi masalah ini.

Modifikasi Backend\BlogController.php dan buat method baru, removeImage() :

Tambahkan method ini di forceDestroy :

Modifikasi juga update() method :

Paging juga kita betulkan. Modifikasi index.blade.php pada bagian $post->render() menjadi seperti ini:

Sesudahnya, kita akan membuat menu di kanan atas untuk menuju post yang sudah dipublikasi, post yang sudah dihapus, dst. Modifikasi index.blade.php :

Modifikasi index() dan restore() method di dalam Backend\BlogController.php

Tambahkan scope di dalam app\Post.php

Membuat Blog dengan Laravel 5.7 dan AdminLTE 3 (14) – Menghapus Post 3

Github commit.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.