Jak uzyskać szczegółowe informacje na temat bieżącego administratora jako back-end?
Jak uzyskać szczegółowe informacje na temat bieżącego administratora jako back-end?
Odpowiedzi:
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()
.
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();
Twój kontroler już rozszerza, \Magento\Backend\App\Action
wię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.
bin/magento setup:di:compile
, w przeciwnym razie pojawiłby się błąd „ Nie podano sesji ”.