yii2 身份 session 到期

yii2 identity session expiry

我是 yii2 框架的新手,我遇到了身份问题。当 session 超时或当我将我的用户状态更改为非活动时,我收到一个错误 Trying to get 属性 of non-object from the user component.

public function getName()
{
    return \Yii::$app->user->identity->username;
}

因为我在网站的 header 中检索这个值,所以我想重定向到登录页面而不是显示这个错误

您应该在控制器中使用访问控制过滤器,这是一种很好的做法。请参阅此 link 以了解如何在您的控制器中实施授权。

在 Controller 文件中你应该输入:

if (\Yii::$app->user->isGuest) {
   return $this->redirect(["site/login"]);
}

这是因为 "identity" 只针对已登录的用户设置.. 所以你不能访问身份,因为他是客人..

https://www.yiiframework.com/doc/api/2.0/yii-web-user#$isGuest-detail