Menghapus Data dengan SoftDelete - Dunia Laravel


Jika kita mau buat aplikasi website yang lumayan besar, kita perlu memikirkan data yang kita proses. Karena data itu satu hal yang penting. Kalo misal ada data yang ga sengaja kehapus dan ternyata data itu penting… ya udah, hilang selamamnya. Buat mencegah hal kaya gitu, Laravel punya sistem yang namanya softdelete. Jadi artikel ini bakal bahas itu.

 

Table of Contents

  • Thing That Need to be Prepared
  • Setting Migration for Softdelete
  • Setting Model User for Softdelete

 

Thing That Need to be Prepared

Buat coba sofdeletenya, kalian paling ga harus punya CRUD biasa dulu. Soalnya ini bakal ga jauh beda sama CRUD biasa, cuma bakal nambah beberapa pengaturan aja.

Kalo udah punya fungsi delete, nanti kita bakal lebih cepet, karena cuma ngatur dibagian model sama migration.

 

Setting Migration for Softdelete

Hal pertama yang perlu kita lakukan adalah setting table database kita. Buat migration baru buat edit table kalian. Disini sebagai contoh aku pake table ‘users’.

    public function up()

    {

        Schema::table('users', function (Blueprint $table) {

            $table->softDeletes();

        });

    }

 

Dimigration nya kita pake $table->softDeletes(), nantinya perintah migration ini bakal ngebuat kolom ‘deleted_at’ di table yang kita tuju. Kolom ini yang menandakan apakah data tersebut udah di delete atau belum.

Habis kita migrate, kita nanti bakal ngeliat kolom tambahan ‘deleted_at’ di table kita.


Kolom yang terisi artinya udah kedelete, dan yang masih NULL artinya belum kedelete.


Setting Model Users for Softdelete

Selanjutnya kita atur modelnya, biar kalo kita jalanin perintah delete untuk delete data, data yang ada didatabase tidak benar-benar didelete.

use Illuminate\Database\Eloquent\SoftDeletes;

 

class User extends Authenticatable

{

    use SoftDeletes;

 

    protected $dates = ['deleted_at'];

}

 

Kita perlu menambahkan use Illuminate\Database\Eloquent\SoftDeletes; di model. Dan beberapa kode kedalam class User. Kode-kode itu yang nantinya bakal dipake buat ngasih tau kalo delete yang biasa udah diganti pake softdelete.

 

Kalo udah, kita tinggal jalanin fungsi delete kaya biasa. Disini aku pake kode yang pernah dibahas di artikel sebelumnya. Ga ada yang aku ubah, aku cuma ngatur migration sama modelnya aja. Kalo berhasil, hasil yang bakal muncul adalah kaya gambar table yang aku tunjukin di bagian setting migration. Kalo yang kedelete bakal keisi, yang ga kedelete bakal tetep NULL.


Komentar

Postingan Populer