在旧版本的Yii中,用户未登录时,导航条的这一部分正在运行。
array('label'=>Yii::t('ge',Yii::app()->user->name), 'url'=>array('/site/index'), 'visible'=>!Yii::app()->user->isGuest),
在Yii2
['label' => Yii::$app->user->identity->username, 'url' => ['site/index'], 'visible'=>!Yii::$app->user->isGuest],
抛出“试图获取非对象的属性”表示对象Yii::$app->user->identity->username
不存在。
我该如何解决这个问题?为什么旧版本可以正常工作?
您应该简单地使用:
'label' => Yii::$app->user->isGuest ? 'Guest' : Yii::$app->user->identity->username
或扩展\yii\web\User
以处理此问题。
在Yii2中:
@property IdentityInterface | null $ identity与当前登录用户关联的身份对象。
null
如果用户未登录(未认证),则返回。
在Yii1中,CWebUser
提供默认名称。请随时在此处为Yii2询问此功能:https : //github.com/yiisoft/yii2/issues
编辑:如果您只想为来宾隐藏此菜单项,请将其添加到您的项目:
'visible' => !Yii::$app->user->isGuest,
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句