Joomla:获取用户组中的所有用户

时间:2017-03-07 11:50:26

标签: custom-component joomla3.5

我正在开发一个组件,我希望显示特定用户组的所有用户。现在我找到了两个解决方案,但我对这两个解决方案感到不舒服。

解决方案1 ​​

$usersID = JAccess::getUsersByGroup(3);
$users = array();
foreach($usersID as $cUserID)
{
    $users[] = JFactory::getUser($cUserID);
}

每次调用JFactory :: getUser($ cUserID)时,这个似乎会产生两个数据库查询。我真的不想要这个。

解决方案2

模型内部的功能

function getUsers()
{
    if(!isset($this->users))
    {
        $groupID = 3;

        $db    = JFactory::getDbo();
        $query = $db->getQuery(true);

        $select = array( 'users.id', 'users.name');
        $where = $db->quoteName('map.group_id') . ' = ' . $groupID;

        $query
            ->select($select)
            ->from( $db->quoteName('#__user_usergroup_map', 'map') )
            ->leftJoin( $db->quoteName('#__users', 'users') . ' ON (map.user_id = users.id)' )
            ->where($where);

        $db->setQuery($query);
        $this->users = $db->loadObjectList();
    }

    return $this->users;
}

这个就像一个魅力,但我觉得应该有一个“更多的Joomla!方式”这样做。我不喜欢在他们的桌子上工作。

现在我正在使用解决方案2,但我真的很想知道是否有更好的方法来做到这一点。

0 个答案:

没有答案