Получение текущего списка пользователей в 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, а не вручную.

1 ответ

Исправлено через способ 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();
}
Другие вопросы по тегам