Heim > Fragen und Antworten > Hauptteil
Ich möchte die Benutzer jeder Kategorie gewinnen. Ich verwende Moodle Version 3.8. Gibt es eine Möglichkeit, Benutzer nach Kategorien zu ermitteln?
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 查询)。