请说我,当用户在我的网站上注册时,我需要在某个表userId
和some hash
中插入。
我该怎么做?
据我所知,我需要使用事件,但我还没想出如何使用它们?
答案 0 :(得分:0)
我尝试逐步为您解答。
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();
}