Как получить текущего пользователя в контроллере — dependency injection? Как получить текущего юзера по нормальному. Без Yii::$app->user ?

21 Авг 2019 в 07:02
232 +1
1
Ответы
1

Для получения текущего пользователя в контроллере с использованием dependency injection в Yii2, вы можете воспользоваться следующим способом.

Создайте свой контроллер и объявите зависимость от интерфейса UserInterface:use yii\web\User;
use yii\web\UserInterface;
class MyController extends \yii\web\Controller
{
private $user;
public function __construct(UserInterface $user, $id, $module, $config = [])
{
$this->user = $user;
parent::__construct($id, $module, $config);
}
public function actionIndex()
{
$currentUser = $this->user->getIdentity();
// Далее можно использовать $currentUser для работы с текущим пользователем
}
}В файле конфигурации приложения (например, в файле config/web.php) добавьте следующую конфигурацию:return [
'components' => [
'user' => [
'identityClass' => 'app\models\User',
],
],
];При использовании данного подхода, текущий пользователь будет доступен через dependency injection в контроллере без прямого обращения к статическому свойству Yii::$app->user.
20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир