Fitur Delete Data pada Alurkerja Lowcode
Melanjutkan dari tulisan sebelumnya, tentang Create Data pada Alurkerja Lowcode, sekarang akan dijelaskan tentang bagaimana cara delete (hapus) data pada Alurkerja Lowcode.
Persiapan
Siapkan project laravel yang telah dipasang Alurkerja Lowcode, jika belum tahu caranya, dapat dilihat disini.
Buat api CRUD dengan command laravolt, jika belum tahu caranya, dapat dilihat disini.
Pada tulisan ini menggunakan module name article dan model name article.
Siapkan beberapa row data pada database anda. Misalkan seperti ini :

Delete
Secara default, endpoint untuk delete data ini telah disediakan oleh alurkerja lowcode.
Untuk kasus ini, terdapat pada endpoint DELETE pada /api/article/article/{id}.
Penggunaannya sebagai berikut :

DELETE yang disediakan oleh alurkerja lowcode adalah HARD DELETE.
Untuk menerapkan SOFT DELETE, pertama - tama tambahkan tambahkan kolom deleted_at pada table articles,
bisa dengan migrasi sebagai berikut :
public function up(): void
{
Schema::table('articles', function (Blueprint $table) {
$table->softDeletes();
});
}
Selanjutnya, pada model (app/Models/Article) gunakan trait SoftDeletes.
Lalu, coba lagi untuk menghapus data, maka kolom deleted_at akan terisi pada data yang dihapus tadi.
use Illuminate\Database\Eloquent\SoftDeletes;
class Article extends CrudModel
{
use SoftDeletes;
...
}

Tambahan :
Jika anda ingin mengisi kolom deleted_by dengan id user yang melakukan aksi tersebut,
bisa dengan meng-override runSoftDelete, seperti berikut ini :
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\Auth;
class Article extends CrudModel
{
use SoftDeletes {
SoftDeletes::runSoftDelete as parentSoftDelete;
}
protected function runSoftDelete()
{
$this->parentSoftDelete();
$query = $this->setKeysForSaveQuery($this->newModelQuery());
$query->update(['deleted_by' => Auth::user()->id]);
}
...
}
