请说我,当用户在我的网站上注册时,我需要插入一些userId
表格some hash
。
我怎样才能做到这一点?
据我了解,我需要使用事件,但我还没有弄清楚如何使用它们?
我尝试逐步为您解答。
1)在User
方法中的模型中afterSave
添加:
public function afterSave()
{
$this->trigger('event_name');
parent::afterDelete();
}
2)添加模型User
新方法:
public function init()
{
$this->on('event_name', ['app\models\SOME_MODEL', 'someMethod']);
}
3)在SOME_MODEL
添加someMethod
这样的代码:
public static function someMethod($event)
{
/** @var \yii\base\Event $event */
/** @var ActiveRecord $event->sender */
$userId = Yii::$app->user->id;
// some code to add in table or send to email
$model = new Logs([
'type' => $event->sender->getType(),
'action' => $event->name,
'id_user' => $userId,
'old_data' => Json::encode($event->sender->attributes),
'new_data' => Json::encode($event->sender->oldAttributes),
]);
$model->save();
}