首页  >  问答  >  正文

如何在Moodle中获取每个类别和子类别的用户

我想获取每个类别的用户。我使用的是moodle 3.8版本。有什么方法可以按类别获取用户。

P粉818306280P粉818306280210 天前309

全部回复(1)我来回复

  • P粉567281015

    P粉5672810152024-02-27 09:21:08

    如果您正在寻找 Moodle 函数来执行此操作,那么您可以调用:

    $cat = core_course_category::get($categoryid);
    $courseids = $cat->get_courses(['recursive', 'idonly']);
    $userids = [];
    foreach ($courseids as $courseid) {
        $context = context_course::instance($courseid);
        $courseusers = get_enrolled_users($context, '', 0, 'u.id');
        $userids = array_merge($userids, array_keys($courseusers));
    }

    然而,这是非常低效的 - 你最好编写一个自定义 SQL 查询,根据课程 ID 列表,它将生成所有这些课程的注册用户列表(看看代码内部) get_enrolled_users() 来了解如何构建这样的 SQL 查询)。

    回复
    0
  • 取消回复