我正在学习yii2,所以我想在登录后使用身份界面,显示一个工人的所有个人信息,我有3个表:用户,工人和人, 所以登录后我需要获取人员数据(姓名,姓氏,流派等),所以我正在使用它:
public static function findIdentity($id)
{
$user = Users::find()
->select("id,login,name")
->innerJoinWith(["workers","workers.person"])
->where("activate=:activate", [":activate" => true])
->andWhere("id=:id", ["id" => $id])
->one();
return isset($user) ? new static($user) : null;
}
但是,当我试图获得“名字”时,我看不到任何东西,我正在使用:
<?= Yii::$app->user->identity->name?>
且值为null,
我究竟做错了什么??成功登录后会发生这种情况。
感谢。
答案 0 :(得分:0)
我不确定,因为我现在无法测试它,但尝试这种方式
public static function findIdentity($id)
{
$user = Users::find()
->select("id,login,name")
->joinWith('workers')
->where('workers.person' => $id)
->andwhere('activate' => true)
->andWhere('id => $id])
->one();
return isset($user) ? new static($user) : null;
}
然而,Identity中的正确值是用户名而不是名称
Yii::$app->user->identity->username