ปกติเวลาที่เราสร้างตารางส่วนใหญ่ก็จะมีฟิวด์ user_id เพื่อบันทึกข้อมูลผู้ใช้งานที่ Create หรือ Update ข้อมูล ซึ่งเราต้องกำหนดค่ารหัสผู้ใช้งานทีล็อกอินเอง

yii2 ได้แก้ปัญหานี โดยใช้ BlameableBehavior เพื่อใช้งานกับ Model ที่เราต้องการได้ โดย BlameableBehavior มีค่าฟิวด์ default กำหนดไว้คือ created_by,updated_by ถ้าหากเราตั้งชื่อตามนี้สามารถเรียกใช้งานตามโค้ดด้านล่างได้เลย

<?php
use yii\behaviors\BlameableBehavior;

//.....
    public function behaviors()
    {
        return [
            BlameableBehavior::className(),
        ];
    }
//.....
?>

แต่ถ้าหากเรากำหนดชื่อฟิดว์เป็นชื่ออื่นๆ ก็สามารถระบุได้เช่นกัน โดย defautl มันสามารถกำหนดได้ 2 ฟิวด์คือ createdByAttribute,updatedByAttribute ตามตัวอย่างผมเก็บแค่ ฟิวด์เดียวก็คือ user_id เลยเซ็ตค่าให้ตรงกันทั้ง 2 อัน

<?php
use yii\behaviors\BlameableBehavior;

//.....
    public function behaviors(){
            return [
                [
                    'class' => BlameableBehavior::className(),
                    'createdByAttribute'=>'user_id',
                    'updatedByAttribute' => 'user_id',
                ]
            ];
    }
//.....
?>

หลังจากนั้นข้อมูลในส่วน user_id มันจะทำการเติมให้อัตโนมัติทุกครั้งที่มีการ create หรือ update ข้อมูล