用户注册时插入数据

时间:2015-04-15 07:49:01

标签: yii2 yii2-user

请说我,当用户在我的网站上注册时,我需要在某个表userIdsome hash中插入。

我该怎么做?

据我所知,我需要使用事件,但我还没想出如何使用它们?

1 个答案:

答案 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();
        }