Blameable Behaviour Yii2


Terkadang kita perlu mengetahui siapa saja user yang telah melakukan penyimpanan data atau mengubah data pada suatu tabel, tentu saja jika dilakukan secara manual diperlukan koding khusus untuk menangani hal tersebut, Yii2 Framework telah menyediakan sebuah fitur untuk menangani hal tersbut tanpa perlu repot lagi menambahkan koding secara khusus, karena akan dilakukan secara otomatis ketika user menambahkan data atau mengubah data, fitur tersebut dinamakan dengan Blameable Behaviour.

Blameable Behaviour meruapakan salah satu fitur yang terdapat pada Yii2 Framework berguna untuk memasukan data secara otomatis sehingga mempermudah untuk memasukan data dan update data, Blameable Behaviour bekerja pada Active Record, agar dapat berfungsi dengan baik kita perlu menambahkan properti update_by dan created_by, 

Penamaan  properti update_by dan created_by tersebut merupakan penamaan standar dari fitur tersebut, namun dapat saja kita mengganti nama properti tersebut dengan nama lain namun diperlukan setingan tambahan agar dapat berjalan dengan baik. dari penamaan properti tersebut terlihat bahwa data yang akan disimpan untuk mengetahui siapa telah memasukan data atau mengubah data pada suatu tabel untuk itu fitur ini akan bekerja saat user sudah melakukan login terhadap sistem.

data yang tersimpan berupa id user dari tabel user yang digunakan ketika menambahkan user baru, saat user tersebut sudah login maka  id user tersebut akan diambil dan disimpan kedalam kolom created_by ketika data ditambahkan dan juaga akan meyimpan data kedalam kolom updated_by ketika data tersebut diubah. 

contoh berikut diasumsikan bahwa user sudah dapat melakukan login ke database, Blameable Behaviour akan diterapkan pada sebuah model yaitu Buku, langkah yang perlu dilakukan yaitu :

  1. Tambahkan sebuah kolom baru pada tabel buku dengan nama updated_by dan created_by dengan tipe data integer
  2. Tambahkan Properti tersebut pada model Buku sehingga menjadi

  terlihat pada source code diatas dua buah properti telah ditambahkan, langkah berikut nya :

  1. Tambahkan library  Model tersebut yaitu use yii\behaviors\TimestampBehavior;
  2. Tambahkan Fungsi Behaviour
Berikut adalah source code lengkap nya :


Dengan menambahkan kode tersebut maka id user yang sudah login akan tersimpan kedalam  pada tabel buku pada kolom created_by dan updated_by. jika kolom/properti nya diganti maka perlu dilakukan penyesuaian pada fungsi behaviours menjadi :