首頁  >  問答  >  主體

如何在Moodle中取得每個類別和子類別的用戶

我想取得每個類別的使用者。我使用的是moodle 3.8版本。有什麼方法可以按類別獲取用戶。

P粉818306280P粉818306280259 天前371

全部回覆(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
  • 取消回覆