Magento 2: Jak uzyskać aktualne dane administratora?


Odpowiedzi:


30

musisz to dodać do konstruktora swojej klasy

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

Następnie utwórz tę metodę

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

da ci to aktualny zalogowany administrator.
Możesz później uzyskać szczegółowe informacje, takie jak $user->getUsername()lub $user->getEmail().


1
Uwaga: Po dodaniu kodów musimy uruchomić bin/magento setup:di:compile, w przeciwnym razie pojawiłby się błąd „ Nie podano sesji ”.
Key Shang

idealna odpowiedź z wyjaśnieniem !!! +1 :)
SagarPPanchal

@Marius Dodałem login jako backend formularza klienta. Ale chcę szczegółów administratora na stronie widoku produktu, który administrator zaloguje się do klienta.
Masud Shaikh

nie możesz uzyskać dostępu do sesji administratora z poziomu interfejsu użytkownika.
Marius

7

Jak uzyskać aktualne dane administratora?

wstrzykiwanie sesji zaplecza do kontrolera

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

}

i użyj tego, aby uzyskać nazwę użytkownika lub adres e-mail

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

Jednak nie jest konieczne wstrzykiwanie kontrolera.
MagePsycho

3

Twój kontroler już rozszerza, \Magento\Backend\App\Actionwięc ma już obiekt autoryzacji. Nie są wymagane żadne dodatkowe zastrzyki. Aby uzyskać użytkownika, wystarczy użyć tej funkcji:

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

Inne odpowiedzi sugerują podwójne zastrzyki, które nie są potrzebne.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.