Cho*_*oxx 3 php yii2 yii2-user
我在我的应用程序中使用了dektrium/yii2-user.并且getID()在vendor/dektrium的User.php中有一个命名方法,该方法可以通过登录用户访问并返回.Yii::$app->user->getID()id
但是,还有另一种方法,getProfile()其功能是返回当前登录用户的完整配置文件详细信息.但是,这种方法给出了500内部服务器错误.
exception 'yii\base\UnknownMethodException' with message 'Calling unknown method: yii\web\User::getProfile()' in ... ...
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索了这个问题但没有发现任何事情......帮助我的人们......
我相信您可以获得当前登录用户的个人资料,如下所示:
Yii::$app->user->identity->profile;
Run Code Online (Sandbox Code Playgroud)
因为Yii::$app->user->identity返回当前用户 - User对象.
您将Yii的Web用户对象与用户模型混淆:)
编辑:
Yii::$app->user是指yii\web\User- 管理用户身份验证状态的应用程序组件.
您要求User组件获取"身份",即:
IdentityInterface是应由提供身份信息的类实现的接口
在这种情况下,Dektrium User模型实现了IdentityInterface,您可以调用getId它并获取User模型的id.
class User extends ActiveRecord implements IdentityInterface
Run Code Online (Sandbox Code Playgroud)
这段代码:
Yii::$app->user->identity->profile;
Run Code Online (Sandbox Code Playgroud)
将返回Profile与之关联的模型数据User
您可以直接访问它的字段:
Yii::$app->user->identity->profile->location;
Run Code Online (Sandbox Code Playgroud)
详情dektrium\user\models\Profile请见.
人们总是对yii\web\User,IdentityInterface和User模型感到困惑.我自己包括:p
| 归档时间: |
|
| 查看次数: |
4185 次 |
| 最近记录: |