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
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
afterUpdatemaka otomatis CodeIgniter akan mengembalikan data, dan ditangkap dengan variabelarray $row -
Nama variabel tidak harus
$row, tapi harus bertipearray -
Isi dari variabel
$rowyaitu:-
$row['id']dengan tipe array, berisi list data primary key dariPenjualanModelyang di update-
$row['id'][0]merupakan data primary keyPenjualanModelyang di update
-
-
$row['data']dengan tipe array associative, berisi data yang di update-
Contoh diatas
$row['data']['status']mengambilstatusdari 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, bernilaitruejika proses update berhasil
-
Referensi:
- codeigniter4.github.io/userguide/models/model.html#model-events
Posting Komentar