जवाबों:
आपको इसे अपनी कक्षा के निर्माता के साथ जोड़ने की आवश्यकता है
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
, अन्यथा यह " सत्र कोई नहीं दिया " त्रुटि दिखाई देगी ।