Magento 2:如何获取当前管理员用户详细信息?


Answers:


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,否则将出现“ Session none named ”错误。
Key Shang

有解释的完美答案!!!+1 :)
SagarPPanchal

@Marius我已添加登录名作为客户表单后端。但是我想要产品查看页面上的管理员详细信息,以便管理员登录到客户。
Masud Shaikh,

您不能从前端访问管理会话。
马里斯(Marius)

7

如何获取当前管理员用户详细信息?

在控制器中注入后端会话

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

}

并使用它来获取用户名或电子邮件

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

虽然没有必要注入您的控制器。
MagePsycho '16

3

您的控制器已经扩展,\Magento\Backend\App\Action因此它已经具有授权对象。无需额外注射。要获取用户,只需使用此功能:

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

其他答案表明不需要重复注射。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.