Magento 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
सूचना: कोड जोड़ने के बाद, हमें चलाने की आवश्यकता है bin/magento setup:di:compile, अन्यथा यह " सत्र कोई नहीं दिया " त्रुटि दिखाई देगी ।
प्रमुख शांग

स्पष्टीकरण के साथ सही जवाब !!! +1 :)
सागरपंचल

@ मैं ग्राहक फॉर्म बैकएंड के रूप में लॉगिन जोड़ चुका हूं। लेकिन मैं उत्पाद दृश्य पृष्ठ पर व्यवस्थापक विवरण चाहता हूं जो ग्राहक को लॉगिन करता है।
मसूद शेख

आप दृश्यपटल से व्यवस्थापक सत्र तक नहीं पहुँच सकते।
मेरियस

7

वर्तमान व्यवस्थापक उपयोगकर्ता विवरण कैसे प्राप्त करें?

अपने नियंत्रक में बैकेंड सत्र इंजेक्षन करें

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

}

और उपयोगकर्ता नाम या ईमेल प्राप्त करने के लिए इसका उपयोग करें

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

हालांकि अपने नियंत्रक में इंजेक्ट करने के लिए आवश्यक नहीं है।
माजेप्सिको 12

3

आपका नियंत्रक पहले से ही विस्तारित है, \Magento\Backend\App\Actionइसलिए उसमें पहले से ही प्राधिकरण ऑब्जेक्ट है। कोई अतिरिक्त इंजेक्शन की जरूरत नहीं है। उपयोगकर्ता को बस इस फ़ंक्शन का उपयोग करने के लिए:

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

अन्य उत्तर डुप्लिकेट इंजेक्शन का सुझाव दे रहे हैं, जिनकी आवश्यकता नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.