Main > Yii > Yii2: Не работает afterLogin событие.

Yii2: Не работает afterLogin событие.

04.04.2020 0 comments » Views: 327

Yii 2

Столкнулся с необходимостью обновлять дату последнего логина пользователя. Задача вроде бы простая, тем более событие EVENT_AFTER_LOGIN существует из коробки. Но, по какой-то причине подписка на него в моей модели, не заработала..

Обработка логина тут: /vendor/yiisoft/yii2/web/User.php [method: login]
Само событие находится вот тут: /vendor/yiisoft/yii2/web/User.php [method: afterLogin]

Я пытался подписаться в моей модели, вот так

Файл: /models/User.php

но, метод updateLastLogin() по какой-то причине так и не вызывался, хотя init() отрабатывал..

Дебажить было лень, поэтому я расчехлил костылемет, и пофиксил это вот так:

В модели оставляем только метод updateLastLogin, файл: /models/User.php

а вызов события описываем в конфигурации, в файле: /config/web.php

** обратите внимание, что после "on" должен стоять пробел, это не опечатка.

После такого знатного костыля все стало работать как надо 🙂

--[добавлено позже]--

Для тех кто использует Advanced темплейт проекта, есть вариант пофиксить через bootstrap.php

Author: | Rating: 4/5 | Tags: ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>