Login yii2内部联接标识接口

Login yii2内部联接标识接口,login,yii2,Login,Yii2,我正在学习yii2,所以我想在登录后使用身份界面,显示一个工人的所有个人信息,我有3个表:用户、工人和个人, 因此,登录后,我需要获取个人数据(姓名、姓氏、流派等),因此我使用它: public static function findIdentity($id) { $user = Users::find() ->select("id,login,name") ->innerJoinWith(["workers","workers.person"])

我正在学习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;
}
但是,当我试图看到“name”时,我什么也看不见,我使用:

 <?= Yii::$app->user->identity->name?>

并且值为空,
我做错了什么??它发生在成功登录之后。
谢谢。

我不确定,因为我现在无法测试它,但请尝试这种方法

    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中的正确值是username,而不是name

Yii::$app->user->identity->username

我不确定,因为我现在无法测试它,但请尝试这种方式

    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中的正确值是username,而不是name

Yii::$app->user->identity->username

我看到了我的查询,结果很好:
从“public”中选择“id”、“login”、“name”。“Users”内部加入“public”。“Workers”在“public”中选择“Workers”。“idpersona”=“public”。“Workers”。“idpersona”内部加入“public”。“Persons”。“idpersona”其中(activate=TRUE)和(id=1);但在模型中,我无法在属性$name中指定任何更好的解释。首先,查询OK是您的还是我的?。第二,这个模型的问题是问题中没有提到的一个新问题吗?如果是,则更新问题并添加关于模型的问题的信息。否则解释方法查询Ok是我的,问题是当我在进行innerjoin以获取人员信息时,查询是Ok的,但模型无法识别属性“name”,因此当我试图在视图中调用时,我什么都看不到,我能看到的唯一属性是来自表“Users”,而不是来自“Persons”注意:Yii::$app->user->identity->username而不是name。我已经更新了答案。我看到了我的查询,结果很好:
从“public”中选择“id”、“login”、“name”。“Users”内部加入“public”。“Workers”上的“Workers”。“idpersona”=“public”。“Workers”。“idpersona”内部加入“public”。“Persons”。“idpersona”其中(activate=TRUE)和(id=1);但在模型中,我无法在属性$name中指定任何更好的解释。首先,查询OK是您的还是我的?。其次,模型的问题是问题中未提及的新问题?如果是,则更新问题并添加关于模型的问题的信息。否则,请解释方法查询OK是我的,问题是我的当我使用innerjoin获取人员信息时,查询是可以的,但是模型无法识别属性“name”,因此当我试图在视图中调用时,我什么都看不到,我能看到的唯一属性是来自表“Users”,而不是来自“Persons”注意:Yii::$app->user->identity->username而不是name。我已经更新了答案