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
注意:コードを追加した後、runを実行する必要がありますbin/magento setup:di:compile。そうしないと、「セッションなし」エラーが表示されます。
Key Shang

説明付きの完璧な答え!!! +1 :)
SagarPPanchal 2018

@Mariusログインを顧客フォームバックエンドとして追加しました。しかし、私は製品ビューページに管理者の詳細が必要です。
Masud Shaikh

フロントエンドから管理セッションにアクセスできません。
マリウス

7

現在の管理ユーザーの詳細を取得するにはどうすればよいですか?

コントローラーにバックエンドセッションを挿入する

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

}

これを使用してユーザー名またはメールを取得します

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

ただし、コントローラーに注入する必要はありません。
MagePsycho 2016年

3

コントローラはすでに拡張\Magento\Backend\App\Actionされているため、認証オブジェクトがすでにあります。追加の注射は必要ありません。ユーザーを取得するには、次の関数を使用します。

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

他の回答は、重複注射を示唆していますが、これは必要ありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.