Magento 2: Як отримати поточну інформацію про користувача адміністратора?


Відповіді:


30

вам потрібно додати це до конструктора вашого класу

protected $authSession;
public function __construct(
    ....
    \Magento\Backend\Model\Auth\Session $authSession, 
    ....
) {
    ....
    $this->authSession = $authSession;
    ....
}

Потім створіть цей метод

public function getCurrentUser()
{
    return $this->authSession->getUser();
}

це дасть вам поточну реєстрацію адміністратора.
Пізніше ви можете отримати деталі, як $user->getUsername()або $user->getEmail().


1
Примітка. Після додавання кодів нам потрібно запустити bin/magento setup:di:compile, інакше виявиться помилка " Сеанс жоден не дано ".
Ключ Шан

ідеальна відповідь з поясненням !!! +1 :)
SagarPPanchal

@Marius Я додав логін як резервний формуляр клієнта. Але я хочу отримати інформацію про адміністратора на сторінці перегляду продукту, яка адміністратор увійде до клієнта.
Масуд Шейх

Ви не можете отримати доступ до сеансу адміністратора з frontend.
Маріус

7

Як отримати поточну інформацію про користувача адміністратора?

ввести сеанс бекенда у свій контролер

public function __construct(
....
\Magento\Backend\Model\Auth\Session $authSession, 
  ....
 ) {
  ....
   $this->authSession = $authSession;
   ....

}

і використовуйте це, щоб отримати ім’я користувача або електронну пошту

 $this->authSession->getUser()->getUsername();
$this->authSession->getUser()->getEmail();

Не потрібно вводити в контролер все ж.
MagePsycho

3

Ваш Контролер вже розширюється, \Magento\Backend\App\Actionтому він вже має об’єкт авторизації. Ніяких додаткових ін’єкцій не потрібно. Щоб отримати користувача, просто скористайтеся цією функцією:

    /** @var \Magento\User\Model\User $user*/
    $user = $this->_auth->getUser();

Інші відповіді пропонують повторити введення, які не потрібні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.