Създадох поведение, което съдържа функция. Тази функция трябва да бъде след влизане на потребител (yii/web/User::EVENT_AFTER_LOGIN). Но тази функция никога няма да бъде задействана за съжаление.
Имам клас на поведение за потребителския модел:
class UserBehavior extends Behavior
{
/**
* @inheritdoc
* @param \yii\base\Component $owner
*/
public function attach($owner)
{
parent::attach($owner);
$owner->on(\yii\web\User::EVENT_AFTER_LOGIN, [$this, 'updateLoginInformation']);
}
/**
* Update login information data:
* - login ip address
* - login time
*/
public function updateLoginInformation()
{
/** @var \common\models\User $owner */
$owner = $this->owner;
$owner->logged_in_ip = Yii::$app->request->getUserIP();
$owner->logged_in_at = time();
$owner->save();
}
}
Декларирах събитията и прикачения файл също. Но тези събития никога не се изпълняват след влизане...
Прикачих това поведение към потребителския модел:
/**
* @inheritdoc
*/
public function behaviors()
{
return [
TimestampBehavior::className(),
UserBehavior::className()
];
}
Ако знам добре, че EVENT_AFTER_LOGIN ще се задейства автоматично от Yii framework, това е причината да не го задействам отново.
И не знам къде е проблемът, защото updageLoginInformatin
никога не се е обаждал.