بِسْمِ اللَّهِ Mudah-mudahan tutorial Codeigniter 3 – CRUD Bagian 3 Hapus Data ini bermanfaat
Bagian kedua dari CRUD adalah hapus data atau biasa kita menyebutnya delete data. Validasi data disini juga diperlukan, karena berhubungan dengan menghilangkan data. Pada tutorial ini, hapus data disini hanya mengubah status data (aktif dan tidak aktif). Nanti juga akan disertakan script untuk benar-benar menghilangkan data dengan benar sebenar-benarnya.
Persiapan Codeigniter 3 – CRUD Bagian 3 Hapus Data
Untuk melanjutkan tutorial pastikan sudah:
Editor Visual Studio Code
Sudah mengerjakan tutorial List Data di Codeigniter 3 – CRUD List Data dengan Pagination
Mengerjakan CRUD Bagian 1 pada Codeigniter 3 – CRUD Bagian 1 Tambah Data
CRUD Bagian 2 pada Codeigniter 3 – CRUD Bagian 2 Edit Data
Pertama
Sama seperti tutorial sebelumnya Edit Data yaitu dengan menambahkan kolom pada list data yaitu tombol delete. Buka file view list (application\views\product\list.php). Tambahkan script berikut untuk tombol delete
<a href="<?= base_url('product/delete/' . $row->id); ?>" class="btn btn-danger btn-circle btn-sm" onclick="return confirm('Apakah anda yakin ?');">
<i class="fas fa-trash"></i>
</a>
Sehingga file list.php secara lengkapnya seperti ini
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary"><?= $title; ?></h6>
<div class="row">
<div class="col">
<div class="text-center"><?= $links; ?></div>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
<thead>
<tr>
<th>ID</th>
<th>Nama Produk</th>
<th>Deskripsi</th>
<th>Gambar</th>
<th width="95px"></th>
</tr>
</thead>
<tbody>
<?php
foreach ($products as $row) {
?>
<tr>
<td><?= $row->id; ?></td>
<td><?= $row->product_name; ?></td>
<td><?= $row->description; ?></td>
<td>
<img height="60px" src="<?= base_url().'/assets/upload/image/'.$row->url; ?>" />
</td>
<td align='center'>
<a href="<?= base_url('product/edit/' . $row->id); ?>" class="btn btn-warning btn-circle btn-sm">
<i class="fas fa-edit"></i>
</a>
<a href="<?= base_url('product/delete/' . $row->id); ?>" class="btn btn-danger btn-circle btn-sm" onclick="return confirm('Apakah anda yakin ?');">
<i class="fas fa-trash"></i>
</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</div>
</div>
Tampilannya akan seperti ini
Tampilan delete waktu dijalankan (klik tombol delete pada list data)
Akan muncul konfirmasi penghapusan data
Kedua
Tambahkan pada controller Product (application\controllers\Product.php) dengan fungsi delete. Scriptnya sebagai berikut:
public function delete($id)
{
if ($this->ion_auth->logged_in()) {
$this->product_model->delete($id);
redirect('product');
} else {
redirect('auth/login');
}
}
Sama dengan fungsi-fungsi sebelumnya (add, save, edit dan update), fungsi delete ini bisa dijalankan dengan otorisasi, artinya hanya user yang sudah login yang akan bisa menggunakan fungsi-fungsi tersebut.
Dan ini masih bisa dikembangkan lagi, dengan menambahkan role user. Misalnya user dengan role tertentu saja yang bisa membuka atau menggunakan fungsi-fungsi tersebut.
Ketiga
Tambahkan fungsi delete data pada model (application\models\Product_model.php). Fungsi ini yang dipanggil dari controller diatas. Sebut saja nama fungsinya delete, scriptnya sebagai berikut:
function delete($id) {
// $this->db->where('id', $id);
// $this->db->delete('products');
$data = array(
'update_date' => date("Y-m-d H:i:s"),
'update_by' => $this->ion_auth->user()->row()->username,
'active' => '0',
);
$this->db->where('id', $id);
$this->db->update('products', $data);
}
Fungsi penghapusan data yang sebenarnya, tinggal di-uncomment jika diperlukan, dan jangan lupa di-comment atau menghilangkan script yang setelahnya. Seperti dibawah ini
function delete($id) {
$this->db->where('id', $id);
$this->db->delete('products');
}
Akhirnya
Sampai disini sudah selesai untuk tutorial Codeigniter 3 – CRUD Bagian 3 Hapus Data. Silakan dilanjutkan dan dikembangkan.
Mudah-mudahan bermanfaat.
You ought to take part in a contest for one of the best websites on the net. I am going to highly recommend this website!