我想取得每個類別的使用者。我使用的是moodle 3.8版本。有什麼方法可以按類別獲取用戶。
如果您正在尋找 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 查詢)。
如果您正在尋找 Moodle 函數來執行此操作,那麼您可以呼叫:
然而,這是非常低效的- 你最好編寫一個自定義SQL 查詢,根據課程ID 列表,它將生成所有這些課程的註冊用戶列表(看看代碼內部) get_enrolled_users() 來了解如何構建這樣的SQL 查詢)。