Magento 2: Как получить текущий пользователь администратора?

magento.stackexchange https://magento.stackexchange.com/questions/105773

  •  29-09-2020
  •  | 
  •  

Вопрос

Как получить текущий пользователь администратора в задней части?

Это было полезно?

Решение

Вам нужно добавить это к конструктору вашего класса

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().

Другие советы

Как получить текущий пользователь администратора пользователя?

Инъекционная сессия Backend в вашем контроллере

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

}

и используйте это, чтобы получить имя пользователя или адрес электронной почты

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

Ваш контроллер уже расширяет \Magento\Backend\App\Action, поэтому у него уже есть объект авторизации.Никаких дополнительных инъекций не требуется. Чтобы пользователь просто использовать эту функцию:

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

Другие ответы предполагают дублирующие инъекции, которые не нужны.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top