Magento 2: Bagaimana cara mendapatkan detail pengguna admin saat ini?


Jawaban:


30

Anda perlu menambahkan ini ke konstruktor kelas Anda

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

Kemudian buat metode ini

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

ini akan memberi Anda admin login saat ini.
Anda nanti bisa mendapatkan detail seperti $user->getUsername()atau $user->getEmail().


1
Perhatikan: Setelah menambahkan kode, kita perlu menjalankan bin/magento setup:di:compile, jika tidak maka akan muncul kesalahan " Sesi tidak diberikan ".
Key Shang

jawaban sempurna dengan penjelasan !!! +1 :)
SagarPPanchal

@Marius saya telah menambahkan login sebagai backend formulir pelanggan. Tapi saya ingin detail admin di halaman tampilan produk yang admin login ke pelanggan.
Masud Shaikh

Anda tidak dapat mengakses sesi admin dari frontend.
Marius

7

Bagaimana cara mendapatkan detail pengguna admin saat ini?

menyuntikkan sesi backend di controller Anda

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

}

dan gunakan ini untuk mendapatkan nama pengguna atau email

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

Tidak perlu menyuntikkan di controller Anda.
MagePsycho

3

Pengontrol Anda sudah diperluas \Magento\Backend\App\Actionsehingga sudah memiliki objek otorisasi. Tidak diperlukan suntikan tambahan. Untuk mendapatkan pengguna cukup gunakan fungsi ini:

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

Jawaban lain menyarankan suntikan duplikat, yang tidak diperlukan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.