2015-04-15 3 views
0

Скажите, пожалуйста, мне нужна вставка в таблицу userId и some hash, когда пользователь регистрируется на моем сайте.Вставьте данные, когда пользователь регистрируется

Как я могу это сделать?

Как я понимаю, мне нужно использовать события, но я не понял, как их использовать?

ответ

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(); 
     } 
Смежные вопросы