Install Web App

Belajar Framework Laravel #30 |Soft Deletes pada laravel

profil-penulis

Muhammad Rafitulloh Nur Ramadhani

30 Mei 2023

Soft delete adalah teknik yang digunakan dalam pengembangan aplikasi web untuk "menghapus" data dari basis data dengan cara yang aman tanpa benar-benar menghapus data tersebut. Ini sangat berguna ketika Anda ingin mempertahankan riwayat data dan masih memungkinkan pemulihan data yang terhapus. Laravel 8 menyediakan fitur soft delete yang mudah digunakan. Dalam artikel ini, kita akan membahas apa itu soft delete dan bagaimana cara menggunakannya di Laravel 8.

Apa itu Soft Deletes?

Soft delete adalah teknik yang memungkinkan Anda menandai data sebagai "terhapus" tanpa menghapus data secara fisik dari basis data. Data yang dihapus secara lembut biasanya diberi label dengan waktu penghapusan, dan data ini tetap ada dalam basis data. Ini berguna dalam berbagai kasus, seperti pemulihan data yang terhapus, audit log, dan sebagainya.

Langkah 1: Membuat Kolom Soft Deletes

Untuk menggunakan fitur soft delete di Laravel 8, pertama-tama Anda perlu menambahkan kolom deleted_at ke tabel yang ingin Anda miliki soft delete. Anda dapat melakukannya dengan menggunakan migrasi. Misalnya, jika Anda memiliki tabel "mahasiswa," buatlah migrasi untuk menambahkan kolom deleted_at seperti ini:

php artisan make:migration tambah_deleted_at_ke_mahasiswa_table
Buka berkas migrasi yang baru dibuat dan tambahkan kode berikut ke metode up:
public function up()
{
    Schema::table('mahasiswa', function (Blueprint $table) {
        $table->softDeletes();
    });
}

Jalankan migrasi ini dengan perintah php artisan migrate untuk menambahkan kolom deleted_at ke tabel "mahasiswa."

Langkah 2: Menggunakan Model Soft Deletes

Setelah Anda menambahkan kolom soft delete, Anda perlu mengonfigurasi model Eloquent untuk menggunakan soft delete. Buka model yang sesuai (misalnya, "Mahasiswa.php") dan gunakan trait SoftDeletes dari Laravel:

use Illuminate\Database\Eloquent\SoftDeletes;

class Mahasiswa extends Model
{
    use SoftDeletes;
}

Dengan menggunakan trait SoftDeletes, model "Mahasiswa" akan tahu bagaimana mengelola data yang dihapus secara lembut.

Langkah 3: Menghapus Data dengan Soft Delete

Untuk melakukan soft delete pada data, Anda dapat menggunakan metode delete pada model. Misalnya:

$mahasiswa = Mahasiswa::find(1);
$mahasiswa->delete();

Kode di atas akan menandai data dengan kunci primer 1 sebagai terhapus secara lembut dengan mengisi kolom deleted_at dengan waktu penghapusan.

Langkah 4: Membaca Data dengan Soft Delete

Untuk membaca data yang dihapus secara lembut, Anda dapat menggunakan model Eloquent seperti biasa:

$mahasiswas = Mahasiswa::all();

Data yang telah dihapus secara lembut akan tetap muncul dalam hasil pencarian. Namun, Anda dapat memeriksa apakah data tersebut telah dihapus atau tidak dengan menggunakan metode trashed():

$mahasiswa = Mahasiswa::withTrashed()->where('id', 1)->first();
if ($mahasiswa->trashed()) {
    // Data ini telah dihapus secara lembut.
} else {
    // Data ini masih aktif.
}

Langkah 5: Mengembalikan Data yang Dihapus

Anda dapat mengembalikan data yang dihapus dengan cara yang sama seperti melakukan soft delete:

$mahasiswa = Mahasiswa::withTrashed()->where('id', 1)->first();
$mahasiswa->restore();

Metode restore akan menghapus tanda waktu penghapusan dari data sehingga data tersebut kembali aktif.

Langkah 6: Menghapus Data Secara Permanen

Jika Anda ingin menghapus data yang dihapus secara permanen dari basis data, Anda dapat menggunakan metode forceDelete:

$mahasiswa = Mahasiswa::withTrashed()->where('id', 1)->first();
$mahasiswa->forceDelete();

Metode forceDelete akan menghapus data dari basis data tanpa memperhitungkan soft delete.

Kesimpulan

Soft delete adalah teknik yang berguna dalam pengembangan aplikasi web untuk mengelola data yang dihapus dengan cara yang lebih aman dan memungkinkan pemulihan data yang terhapus. Dengan menggunakan fitur soft delete di Laravel 8, Anda dapat dengan mudah menandai data sebagai terhapus tanpa menghapusnya secara fisik. Ini adalah alat yang kuat dalam pemeliharaan data dan pengembangan aplikasi yang lebih aman dan terstruktur.

Artikel Lainnya Dengan Kategori Terkait :


1. Belajar Framework Laravel #01 |Pengertian Framework

2. Belajar Framework Laravel #02 |Framework vs PHP Native

3. Belajar Framework Laravel #03 |Pengertian Dan Keunggulan Framework Laravel

4. Belajar Framework Laravel #04 |Pengertian MVC (Model – View – Controller)

5. Belajar Framework Laravel #05 |Instalasi XAMPP dan Cara Akses PHP dari CMD

6. Belajar Framework Laravel #06 |Cara Menginstall Composer

7. Belajar Framework Laravel #07 |Cara Menginstall Laravel 8

8. Belajar Framework Laravel #08 |Cara Menjalankan Laravel 8

9. Belajar Framework Laravel #09 |Cara Membuat Route di Laravel 8

10. Belajar Framework Laravel #10 |Cara Membuat View di Laravel 8

11. Belajar Framework Laravel #11 |Cara Mengirim Data ke View Laravel 8

12. Belajar Framework Laravel #12 |Membuat Controller Pada Laravel 8

13. Belajar Framework Laravel #13 |Passing Data Controller Ke View Laravel

14. Belajar Framework Laravel #14 |Request Data Pada Laravel

15. Belajar Framework Laravel #15 |Maintenance Mode Pada Laravel

16. Belajar Framework Laravel #16 |Konfigurasi Dasar Pada Laravel

17. Belajar Framework Laravel #17 |Sistem Template Blade Laravel

18. Belajar Framework Laravel #18 |CRUD Menampilkan Data Dengan menggunakan query builder pada laravel

19. Belajar Framework Laravel #19 |CRUD Menginput Data Dengan menggunakan query builder pada laravel

20. Belajar Framework Laravel #20 |CRUD Update Data Dengan menggunakan query builder pada laravel

21. Belajar Framework Laravel #21 |CRUD Update Data Dengan menggunakan query builder pada laravel

22. Belajar Framework Laravel #22 |Seeding dan Faker Pada Laravel

23. Belajar Framework Laravel #23 |Membuat Pagination Pada Laravel

24. Belajar Framework Laravel #24 |Membuat Pencarian Pada Laravel

25. Belajar Framework Laravel #25 |Menggunakan Bootstrap Di Laravel

26. Belajar Framework Laravel #26 |Membuat Form Validasi Pada Laravel

27. Belajar Framework Laravel #27 |Migration Laravel

28. Belajar Framework Laravel #28 |CRUD Eloquent Laravel pada laravel 8

29. Belajar Framework Laravel #29 |CRUD Laravel Menggunakan Eloquent

30. Belajar Framework Laravel #30 |Soft Deletes pada laravel

31. Belajar Framework Laravel #31 |Relasi One To One Eloquent pada laravel

32. Belajar Framework Laravel #32 |Relasi One To Many Eloquent Pada Laravel

33. Belajar Framework Laravel #33 |Relasi Many To Many Eloquent Pada Laravel

34. Belajar Framework Laravel #34 |Membuat Login dan Register Menggunakan Laravel 8

35. Belajar Framework Laravel #35 |Membuat Reset Password Laravel Via Email

36. Belajar Framework Laravel #36 |Encrypt dan Decrypt pada Laravel

37. Belajar Framework Laravel #37 |Hashing Pada Laravel

38. Belajar Framework Laravel #38 |CRUD Membuat Upload file pada laravel 8

39. Belajar Framework Laravel #39 |CRUD Hapus File Menggunakan Laravel

40. Belajar Framework Laravel #40 |Session pada laravel

41. Belajar Framework Laravel #41 |Notifikasi dengan session laravel

42. Belajar Framework Laravel #42 |Error Handling Laravel

43. Belajar Framework Laravel #43 |Kirim Email Dengan Laravel

44. Belajar Framework Laravel #44 |Verifikasi Email User Laravel

45. Belajar Framework Laravel #45 |Membuat Laporan PDF Dengan DOMPDF Laravel

46. Belajar Framework Laravel #46 |Export Excel Laravel

47. Belajar Framework Laravel #47 |Import Excel Laravel

48. Belajar Framework Laravel #48 |Multi Bahasa Localization

49. Belajar Framework Laravel #49 |Multi Bahasa Localization Laravel Dengan URL

50. Belajar Framework Laravel #50 |Action URL Laravel

51. Cara Install Laravel di Windows

Masuk Terlebih dahulu untuk berkomentar

Paling baru
Lihat Lainnya