ahmadajah03 Thu Apr 2020 1 year ago

Contoh Soft Delete pada Laravel

Dalam tutorial ini, saya ingin menunjukkan kepada Anda bagaimana menggunakan soft delete di laravel. di sini saya akan memberi Anda contoh laravel soft delete.

saya akan menjelaskan langkah demi langkah implementasi soft delete di aplikasi laravel. kita harus menggunakan soft delete untuk keamanan dan cadangan di laravel.

Bagaimana membuat soft delete, LARAVEL add deleted_at kolom di table yang standar be akan null dan ketika kita menghapus maka akan menempatkan timestamp saat ini, LARAVEL Model selalu mengambil record yang hanya memiliki deleted_at = null.

Jadi, bagaimana cara menggunakan dalam proyek kami, jadi pertama-tama ketika Anda membuat tabel migrasi maka Anda harus menambahkan softDeletes () . Anda dapat melihat seperti contoh migrasi di bawah ini.

Contoh Migration:

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;


class CreateItemsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('items', function(Blueprint $table) {
            $table->increments('id');
            $table->string('title');
            $table->text('description');
            $table->softDeletes();
            $table->timestamps();
        });
    }


    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop("items");
    }
}

Ok, sekarang Anda dapat menemukan kolom yang dihapus di tabel item Anda dan model yang Anda miliki juga akan terlihat seperti di bawah ini:

Items Model

namespace App;


use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;


class Item extends Model
{
    use SoftDeletes;

    
    public $fillable = ['title','description'];


    /**
     * The attributes that should be mutated to dates.
     *
     * @var array
     */
    protected $dates = ['deleted_at'];


}

Sekarang, Anda dapat menggunakan Model item seperti biasanya seperti yang Anda gunakan sebelumnya, Anda mendapatkan semua catatan seperti ini.

$data = Item::get();

Ini akan mengembalikan semua catatan yang telah deleted_at= null saja dan Anda juga dapat menghapus catatan seperti ini:

$data = Item::find(1)->delete();

Anda juga bisa mendapatkan catatan yang dihapus dengan soft delete.

$data = Item::withTrashed()->get();

Anda dapat memeriksa dan menggunakannya benar-benar bagus ....

soft delete laravel