Wie erhalte ich die aktuellen Administrator-Benutzerdetails im Back-End?
Wie erhalte ich die aktuellen Administrator-Benutzerdetails im Back-End?
Antworten:
Sie müssen dies dem Konstruktor Ihrer Klasse hinzufügen
protected $authSession;
public function __construct(
....
\Magento\Backend\Model\Auth\Session $authSession,
....
) {
....
$this->authSession = $authSession;
....
}
Dann erstellen Sie diese Methode
public function getCurrentUser()
{
return $this->authSession->getUser();
}
Dadurch erhalten Sie den aktuell angemeldeten Administrator.
Sie können später die Details wie $user->getUsername()
oder erhalten $user->getEmail()
.
Wie erhalte ich aktuelle Administrator-Benutzerdetails?
Injizieren Sie eine Backend-Sitzung in Ihren Controller
public function __construct(
....
\Magento\Backend\Model\Auth\Session $authSession,
....
) {
....
$this->authSession = $authSession;
....
}}
und verwenden Sie diese Option, um den Benutzernamen oder die E-Mail-Adresse abzurufen
$this->authSession->getUser()->getUsername();
$this->authSession->getUser()->getEmail();
Ihr Controller wird bereits erweitert, \Magento\Backend\App\Action
sodass er bereits über das Berechtigungsobjekt verfügt. Es sind keine zusätzlichen Injektionen erforderlich. Um den Benutzer zu erhalten, verwenden Sie einfach diese Funktion:
/** @var \Magento\User\Model\User $user*/
$user = $this->_auth->getUser();
Andere Antworten deuten auf doppelte Injektionen hin, die nicht benötigt werden.
bin/magento setup:di:compile
, da sonst der Fehler " Sitzung keine angegeben " angezeigt wird.