Initekno.com – Hail, sampai juga kita pada penghujung artikel tentang codeigniter 4 CRUD, semoga untuk artikel kemaren tidak ada kendala ya. Pada kesempatan kali ini CRUD tentang bagian delete data, karena ini artikel lanjutan maka sangat disarankan untuk membaca artikel sebelumnya yaitu update data, silahkan nanti saya sisipkan pada bagian bawah.
Fungsi dari fitur delete data ini cukup sederhana ya, kamu nantinya bisa menghapus data dalam tabel hanya dengan menekan tombol X saja, atau tombol tong sampah. Delete data ini masih bersifat satuan, jadi hanya data dengan id terpilih yang akan dihapus datanya. Kedepannya kita akan membuat delete data berdasarkan select id, atau multiple delete data.
Daftar Isi
Membuat Controller
Tahapan awal seperti biasa kita mulai dengan membuat controllers Member.php dan simpan pada direktori app/controllers/Member.php
Untuk bagian ini kita akan membuat delete data, maka dari itu segera tambahkan method deleteMember() dan sertakan parameter $id tuliskan kode lengkapnya seperti berikut ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php namespace App\Controllers; use App\Models\MemberModel; class Member extends BaseController { public function deleteMember($id = null) { $memberModel = new MemberModel(); $member = $memberModel->delete($id); $session = session(); $session->setFlashdata("success", "Member berhasil di hapus"); return redirect()->to(base_url('list-members')); } } |
Membuat Model
Untuk model masih sama terus seperti artikel sebelumnya, kalian hanya perlu menambahkan name, email dan mobile pada $allowedFields sehingga kode lengkapnya akan menjadi seperti berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?php namespace App\Models; use CodeIgniter\Model; class MemberModel extends Model { protected $DBGroup = 'default'; protected $table = 'tbl_members'; protected $primaryKey = 'id'; protected $useAutoIncrement = true; protected $insertID = 0; protected $returnType = 'array'; protected $useSoftDelete = false; protected $protectFields = true; protected $allowedFields = [ 'name', 'email', 'mobile' ]; // Dates protected $useTimestamps = false; protected $dateFormat = 'datetime'; protected $createdField = 'created_at'; protected $updatedField = 'updated_at'; protected $deletedField = 'deleted_at'; // Validation protected $validationRules = []; protected $validationMessages = []; protected $skipValidation = false; protected $cleanValidationRules = true; // Callbacks protected $allowCallbacks = true; protected $beforeInsert = []; protected $afterInsert = []; protected $beforeUpdate = []; protected $afterUpdate = []; protected $beforeFind = []; protected $afterFind = []; protected $beforeDelete = []; protected $afterDelete = []; } |
Membuat View
pada list-members.php perhatikan kode berikut ini. Kode ini menandakan bahwa jika kalian tekan maka akan ada id yang terpilih untuk kemudian anda hapus. Kemudian akan muncul dialog onclick confirmasi pertanyaan penghapusan data.
1 |
<a href="<?= base_url('delete-member/' . $value['id']); ?>" class="btn btn-danger btn-sm" onclick="return confirm('apa kamu yakin akan hapus data?')">X</a> |
untuk kode list-members.php lengkapnya seperti berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<?= $this->extend("app") ?> <?= $this->section("body") ?> <div class="container" style="margin-top:20px;"> <div class="row"> <div class="panel panel-primary"> <div class="panel-heading"> Data Member <a href="<?= base_url('add-member') ?>" style="margin-top: -7px;" class="btn btn-sm btn-default pull-right">+</a> </div> <div class="panel-body"> <?php if(session()->has("success")){ ?> <div class="alert alert-success"> <?= session("success") ?> </div> <?php } ?> <table class="table"> <thead> <th>ID</th> <th>Nama</th> <th>Email</th> <th>Nohp</th> <th>Aksi</th> </thead> <tbody> <?php foreach ($members as $value) { ?> <tr> <td><?php echo $value['id']; ?></td> <td><?php echo $value['name']; ?></td> <td><?php echo $value['email']; ?></td> <td><?php echo $value['mobile']; ?></td> <td> <a href="<?= base_url('edit-member/' . $value['id']); ?>" class="btn btn-primary btn-sm">E</a> <a href="<?= base_url('delete-member/' . $value['id']); ?>" class="btn btn-danger btn-sm" onclick="return confirm('apa kamu yakin akan hapus data?')">X</a> </td> </tr> <?php } ?> </tbody> </table> </div> </div> </div> </div> <?= $this->endSection() ?> |
Routes
Jika views sudah kalian garap, maka langsung saja beralih pada Routes.php pada direktori app/config/Routes.php sertakan kode untuk delete member seperti berikut ini.
1 |
$routes->get("delete-member/(:num)", "Member::deleteMember/$1"); |
dan jika kita tampilkan keseluruhan route maka akan nampak seperti berikut :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
* -------------------------------------------------------------------- * Route Definitions * -------------------------------------------------------------------- */ // We get a performance increase by specifying the default // route since we don't have to scan directories. $routes->get('/', 'Home::index'); //Route Member $routes->match(["get", "post"], "add-member", "Member::addMember"); $routes->match(["get", "post"], "edit-member/(:num)", "Member::EditMember/$1"); $routes->get("list-members", "Member::listMember"); $routes->get("delete-member/(:num)", "Member::deleteMember/$1"); |
Selesai..
Gampang sekali bukan, sekarang seperti biasanya jalankan server development codeigniter4 dengan cara
1 |
php spark serve |
Maka jika tidak ada kendala kamu akan mendapati hasil seperti berikut ini
Tinggalkan Balasan