How can I get the name of the logged-in-user in yii2? I can get the user-id with
Yii::$app->user->id;
and I know that I could find the name in the database but I want a direct way. The name-column in the database has the name "username", but
Yii::$app->user->username;
doesn't work and
Yii::$app->user->name;
doesn't work either.
On login the user information will be stored in
Yii::$app->user->identity
variable.For more information have a read through the User Authentication documentation in the official guide.
While the answer from @thepeach works, you can actually extend the User component and add your own functions, so that you can get them via
Yii::$app->user->something
as you were initially trying to do.I like to extend things like this from the start, so I am ready to add custom functionality without having to refactor any code. It sucks to do things one way, then have to go back and fix 100 spots of code, because you changed it later.
First, define a user component class in your config:
Then create
User.php
in yourcomponents
directory. If you haven't made this directory, create it in your app root.User.php
Now you can access these through
Yii::$app->user->something
.For example, put this in one of your views and access the page in your browser:
I wrote a more detailed answer here, which covers this a bit more in depth.
Easy, just use: