CodeIgniter 4: contoh afterUpdate model event
Contoh penggunaan model event $afterUpdate
di CodeIgniter 4
Secara singkat fitur ini mirip seperti trigger pada MySQL, dimana jika record di-update maka otomatis lakukan proses tertentu
File: app/Models/PenjualanModel.php
class PenjualanModel extends Model
{
// ...
// setelah proses update, maka panggil fungsi kirim_notifikasi
// jika ada banyak fungsi, bisa dipisahkan dengan koma
protected $afterUpdate = ['kirim_notifikasi'];
// fungsi yang akan dipanggil setelah update
// $row merupakan return data dari proses update PenjualanModel
public function kirim_notifikasi(array $row)
{
// contoh disini jika penjualan di update, maka kirim notifikasi
// contoh lain bisa juga proses update stok dilakukan disini
if ($row['result']){
$status = $row['data']['status'];
// insert data ke tabel notifikasi
$notifikasi = new NotifikasiModel();
$params = [
'pengguna_id' => $row['data']['supplier_id'],
'pesan' => "Transaksi penjualan sudah diproses dengan $status",
'dibaca' => false,
];
$notifikasi->insert($params);
}
}
}
- Jika menggunakan
afterUpdate
maka otomatis CodeIgniter akan mengembalikan data, dan ditangkap dengan variabelarray $row
- Nama variabel tidak harus
$row
, tapi harus bertipearray
- Isi dari variabel
$row
yaitu:$row['id']
dengan tipe array, berisi list data primary key dariPenjualanModel
yang di update$row['id'][0]
merupakan data primary keyPenjualanModel
yang di update
$row['data']
dengan tipe array associative, berisi data yang di update- Contoh diatas
$row['data']['status']
mengambilstatus
dari data status penjualan yang baru di update - Harap diperhatikan, hanya data yang di update saja yang ada pada variabel
$row['data']
, jadi tidak semua atribut ada - Jika ada satu atribut saja yang di update, maka isi
$row['data']
juga hanya satu saja, begitu seterusnya
- Contoh diatas
$row['result']
dengan tipe boolen, bernilaitrue
jika proses update berhasil