yii2内连接标识接口

时间:2015-08-30 18:10:28

标签: login yii2

我正在学习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,
我究竟做错了什么??成功登录后会发生这种情况。 感谢。

1 个答案:

答案 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