CodeIgniter 4: contoh afterInsert model event
Contoh penggunaan model event $afterInsert
di CodeIgniter 4
Secara singkat fitur ini mirip seperti trigger pada MySQL, dimana jika record baru ditambahkan maka otomatis lakukan proses tertentu
File: app/Models/PenjualanModel.php
class PenjualanModel extends Model
{
// ...
// setelah insert, maka panggil fungsi kirim_notifikasi
// jika ada banyak fungsi, bisa dipisahkan dengan koma
protected $afterInsert = ['kirim_notifikasi'];
// fungsi yang akan dipanggil setelah insert
// $row merupakan return data dari proses insert PenjualanModel
public function kirim_notifikasi(array $row)
{
// contoh disini jika penjualan di insert, maka kirim notifikasi
// contoh lain bisa juga proses update stok dilakukan disini
if ($row['result']){
// insert data ke tabel notifikasi
$notifikasi = new NotifikasiModel();
$params = [
'pengguna_id' => $row['data']['supplier_id'],
'pesan' => 'Transaksi penjualan baru',
'dibaca' => false,
];
$notifikasi->insert($params);
}
}
}
- Jika menggunakan
afterInsert
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 integer, berisi data primary key dariPenjualanModel
(last insert id)- Jika proses insert gagal, maka
$row['id']
akan bernilai 0
- Jika proses insert gagal, maka
$row['data']
dengan tipe array associative, berisi data yang di insert- Contoh diatas
$row['data']['supplier_id']
mengambilsupplier_id
dari data penjualan yang baru di insert - Semua atribut yang di insert bisa diakses
- Contoh diatas
$row['result']
dengan tipe boolen, bernilaitrue
jika proses insert berhasil