我用过dektrium/yii2-user https://github.com/dektrium/yii2-user在我的应用程序中。
并且有一个方法名为getID()
in User.php of 供应商/dektrium并且可以通过以下方式访问此方法Yii::$app->user->getID()
并返回id
登录用户的。
然而,还有另一种方法,名为getProfile()
其功能是返回当前登录用户的完整个人资料详细信息。但是,此方法会给出 500-内部服务器错误。
exception 'yii\base\UnknownMethodException' with message 'Calling unknown method: yii\web\User::getProfile()' in ... ...
我用谷歌搜索了这个问题,但没有找到任何结果...帮助我。
我相信您可以像这样获取当前登录用户的个人资料:
Yii::$app->user->identity->profile;
because Yii::$app->user->identity
返回当前用户 -User
object.
您将 Yii 的 Web 用户对象与用户模型混淆了:)
EDIT:
Yii::$app->user
指的是yii\web\User
- 管理用户身份验证状态的应用程序组件。
您要求用户组件获取“身份”,即:
IdentityInterface是提供身份信息的类应该实现的接口
在这种情况下,Dektrium 用户模型实现了IdentityInterface
你可以打电话getId
并获取用户模型的 id。
class User extends ActiveRecord implements IdentityInterface
这段代码:
Yii::$app->user->identity->profile;
将返回Profile
与相关的模型数据User
您可以直接访问它的字段:
Yii::$app->user->identity->profile->location;
See dektrium\user\models\Profile
了解详情。
人们总是对 yii\web\User、IdentityInterface 和 User 模型感到困惑。
我自己也包括在内:p
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)