วิธีรับรายละเอียดผู้ดูแลระบบปัจจุบันในแบ็คเอนด์
วิธีรับรายละเอียดผู้ดูแลระบบปัจจุบันในแบ็คเอนด์
คำตอบ:
คุณต้องเพิ่มสิ่งนี้ลงในตัวสร้างคลาสของคุณ
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()
วิธีรับรายละเอียดผู้ดูแลระบบปัจจุบัน
ฉีดเซสชั่นแบ็กเอนด์ในตัวควบคุมของคุณ
public function __construct(
....
\Magento\Backend\Model\Auth\Session $authSession,
....
) {
....
$this->authSession = $authSession;
....
}
และใช้สิ่งนี้เพื่อรับชื่อผู้ใช้หรืออีเมล
$this->authSession->getUser()->getUsername();
$this->authSession->getUser()->getEmail();
คอนโทรลเลอร์ของคุณขยายไปแล้ว\Magento\Backend\App\Action
ดังนั้นจึงมีวัตถุการอนุญาตอยู่แล้ว ไม่จำเป็นต้องฉีดเพิ่มเติม ในการรับผู้ใช้ให้ใช้ฟังก์ชันนี้:
/** @var \Magento\User\Model\User $user*/
$user = $this->_auth->getUser();
คำตอบอื่น ๆ คือการแนะนำการฉีดซ้ำซึ่งไม่จำเป็น
bin/magento setup:di:compile
มิฉะนั้นจะปรากฏข้อผิดพลาด " ไม่มีเซสชันใดได้รับ "