获取adminhtml中的当前用户列表选择

时间:2017-04-26 09:26:33

标签: php arrays magento adminhtml

我正在尝试以adminhtml选择表单获取当前(完整)用户列表。我有选择表单和自定义源模型。如果我设置手动数组,一切正常。

但是,我很难弄清楚如何自动获取它。我所知道的是,我这样做完全错了,但我想不出它的方式。我发现我可以通过这个获得当前的用户列表:

$roles_users = Mage::getResourceModel('admin/roles_user_collection');
  foreach($roles_users as $roleuser):
   $user = Mage::getModel('admin/user')->load($roleuser->getUserId());
   echo $user->getUsername();
  endforeach;

我可以在选择中获取信息:

public function toOptionArray()
{
    $themes = array(
        array('value' => 'user 1', 'label' => 'user 1'),
        array('value' => 'user 2', 'label' => 'user 2'),
        array('value' => 'user 3', 'label' => 'user 3'),
    );

    return $themes;
}

即使我似乎完全没有以阵列形式获得magento选秀权:

public function toOptionArray()
{
    $rolesUsers = Mage::getResourceModel('admin/roles_user_collection');

    foreach ($rolesUsers as $roleuser) :
        $user = Mage::getModel('admin/user')->load($roleuser->getUserId());
        $users = array(
            array('value' => $user->getUsername(), 'label' => $user->getUsername()),
        );

        return $users;
    endforeach;
}

我的想法是我这样做,但通过magento而不是手动。

enter image description here

1 个答案:

答案 0 :(得分:0)

通过Magento方式修复它:

/**
 * @return array
 */
public function toOptionArray()
{
    /** @var \Mage_Admin_Model_Resource_User_Collection $userCollection */
    $userCollection = Mage::getResourceModel('admin/user_collection');

    return $userCollection
        ->addFieldToSelect('user_id', 'id')
        ->addFieldToSelect('username', 'name')
        ->toOptionArray();
}