Magento 2: Làm thế nào để tải chi tiết người dùng quản trị viên theo id?


8

Tôi có id người dùng quản trị 15, Làm cách nào để tải mô hình để có tên người dùng và vai trò người dùng? Trong Magento1 điều này có thể sử dụng:

$adminuserId = 15;
Mage::getModel('admin/user')->load($adminuserId)->getRole()->getData();

Làm thế nào nó hoạt động trong Magento2?

Câu trả lời:


15

Bạn cần thêm phần này vào lớp và hàm tạo của bạn:

protected $userFactory;
public function __construct(
    ...
    \Magento\User\Model\UserFactory $userFactory,
    ...
)
{
    ...
    $this->userFactory = $userFactory;
    ...
}

Sau đó tạo một phương thức trong cùng một lớp để lấy dữ liệu vai trò:

public function getRoleData($userId)
{
    $user = $this->userFactory->create()->load($userId);
    $role = $user->getRole();
    $data = $role->getData();
    return $data;
}

3

Bạn có thể sử dụng mã sau đây:

$adminuserId = 15;
$user = \Magento\Framework\App\ObjectManager::getInstance()->create(
    'Magento\User\Model\User'
);
$user->load($adminuserId);

Nhưng nó không được khuyến khích sử dụng ObjectManagertrực tiếp trong mã. Cố gắng thêm Magento\User\Model\UserFactoryvào trình xây dựng lớp của bạn và sử dụng nó để tải khách hàng.

Thí dụ:

class SomeMyClass
{
    protected $_userFactory;

    public function __construct(
        \Magento\User\Model\UserFactory $userFactory
    ) {
        $this->_userFactory = $userFactory;
    }

    public function someFunction()
    {
        $adminuserId = 15;
        $user = $this->_userFactory->create();
        $user->load($adminuserId);
    }
}

0

Sau đây sẽ giúp lấy id người dùng đăng nhập magento. Cảm ơn bạn

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$extensionUser = $objectManager->get('Magento\Backend\Model\Auth\Session')->getUser()->getUsername();
$extensionId = $objectManager->get('Magento\Backend\Model\Auth\Session')->getUser()->getID();
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.