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