마 젠토 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. 그렇지 않으면 " Session none given "오류 가 나타납니다 .
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 2016 년

3

Controller가 이미 확장 \Magento\Backend\App\Action되어 권한 부여 개체가 이미 있습니다. 추가 주사가 필요하지 않습니다. 사용자가이 기능을 사용하도록하려면 :

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

다른 답변은 필요하지 않은 중복 주사를 제안하고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.