在yii2中获取用户的名字
Get the name of the user in yii2
如何在 yii2 中获取登录用户的名称?
我可以通过
获取用户 ID
Yii::$app->user->id;
我知道我可以在数据库中找到这个名字,但我想要一个直接的方法。
数据库中的名称列名称为 "username",但
Yii::$app->user->username;
不起作用并且
Yii::$app->user->name;
也不行。
登录时,用户信息将存储在 Yii::$app->user->identity
变量中。
有关详细信息,请阅读官方指南中的 User Authentication documentation。
虽然@thepeach 的答案有效,但您实际上可以扩展 User 组件并添加您自己的函数,这样您就可以像最初尝试的那样通过 Yii::$app->user->something
获取它们。
我喜欢从一开始就扩展这样的东西,所以我准备添加自定义功能而无需重构任何代码。以一种方式做事很糟糕,然后必须返回并修复 100 个代码点,因为你后来更改了它。
首先,在您的配置中定义一个用户组件class:
'components' => [
'user' => [
'class' => 'app\components\User', // extend User component
],
],
然后在您的 components
目录中创建 User.php
。如果您还没有创建此目录,请在您的应用程序根目录中创建它。
User.php
<?php
namespace app\components;
use Yii;
/**
* Extended yii\web\User
*
* This allows us to do "Yii::$app->user->something" by adding getters
* like "public function getSomething()"
*
* So we can use variables and functions directly in `Yii::$app->user`
*/
class User extends \yii\web\User
{
public function getUsername()
{
return \Yii::$app->user->identity->username;
}
public function getName()
{
return \Yii::$app->user->identity->name;
}
}
现在您可以通过 Yii::$app->user->something
访问这些内容。
例如,将其放入您的视图之一并在浏览器中访问该页面:
<?= \Yii::$app->user->username ?>
我写了一个更详细的答案 ,其中涵盖了更深入的内容。
简单,只需使用:
<?= \Yii::$app->user->identity->username ?>
$user_id = Yii::$app->user->id;
$user_name = User::find()->where(['id'=>$user_id])->one()->username;
我总是喜欢使用下面的代码来查找当前用户。只使用这个,你就会得到身份。
\Yii::$app->user->identity->username;
如何在 yii2 中获取登录用户的名称? 我可以通过
获取用户 IDYii::$app->user->id;
我知道我可以在数据库中找到这个名字,但我想要一个直接的方法。 数据库中的名称列名称为 "username",但
Yii::$app->user->username;
不起作用并且
Yii::$app->user->name;
也不行。
登录时,用户信息将存储在 Yii::$app->user->identity
变量中。
有关详细信息,请阅读官方指南中的 User Authentication documentation。
虽然@thepeach 的答案有效,但您实际上可以扩展 User 组件并添加您自己的函数,这样您就可以像最初尝试的那样通过 Yii::$app->user->something
获取它们。
我喜欢从一开始就扩展这样的东西,所以我准备添加自定义功能而无需重构任何代码。以一种方式做事很糟糕,然后必须返回并修复 100 个代码点,因为你后来更改了它。
首先,在您的配置中定义一个用户组件class:
'components' => [
'user' => [
'class' => 'app\components\User', // extend User component
],
],
然后在您的 components
目录中创建 User.php
。如果您还没有创建此目录,请在您的应用程序根目录中创建它。
User.php
<?php
namespace app\components;
use Yii;
/**
* Extended yii\web\User
*
* This allows us to do "Yii::$app->user->something" by adding getters
* like "public function getSomething()"
*
* So we can use variables and functions directly in `Yii::$app->user`
*/
class User extends \yii\web\User
{
public function getUsername()
{
return \Yii::$app->user->identity->username;
}
public function getName()
{
return \Yii::$app->user->identity->name;
}
}
现在您可以通过 Yii::$app->user->something
访问这些内容。
例如,将其放入您的视图之一并在浏览器中访问该页面:
<?= \Yii::$app->user->username ?>
我写了一个更详细的答案
简单,只需使用:
<?= \Yii::$app->user->identity->username ?>
$user_id = Yii::$app->user->id;
$user_name = User::find()->where(['id'=>$user_id])->one()->username;
我总是喜欢使用下面的代码来查找当前用户。只使用这个,你就会得到身份。
\Yii::$app->user->identity->username;