Например мне надо сделать чтобы после логина в бд изменялось поле с датой последней авторизации пользоветля. Хочу сделать это красиво, через behaviors.
Подскажите как правильно активировать ивент EVENT_LOGIN, чтобы все сработало
Код: Выделить всё
class User extends ActiveRecord implements IdentityInterface
{
const EVENT_LOGIN = 'login';
public function login()
{
$user = $this->findUserByEmail();
if($user) {
if($user->status == self::STATUS_ACTIVE) {
$user->save(); //Для сохранения результата работы ивента
return Yii::$app->user->login($user, 3600*24*30);
} elseif($user->status == self::STATUS_INACTIVE) {
$this->addError('password', 'Ваш аккаунт не активирован');
} else {
$this->addError('password', 'Ваш аккаунт заблокирован');
}
}
return false;
}
public function behaviors()
{
return [
'timestamp' => [
'class' => 'yii\behaviors\TimestampBehavior',
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['registered_at'],
self::EVENT_LOGIN => ['logged_at'] // Хочу чтобы сработал этот ивент
],
],
];
}
}