0

请说我,当用户在我的网站上注册时,我需要插入一些userId表格some hash

我怎样才能做到这一点?

据我了解,我需要使用事件,但我还没有弄清楚如何使用它们?

4

1 回答 1

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();
        }
于 2015-04-15T08:03:23.730 回答