各カテゴリのユーザーを取得したいと考えています。私はmoodleバージョン3.8を使用しています。カテゴリ別にユーザーを取得する方法はありますか。
P粉5672810152024-02-27 09:21:08
これを行うための Moodle 関数を探している場合は、次のように呼び出すことができます:
$cat = core_course_category::get($categoryid); $courseids = $cat->get_courses(['recursive', 'idonly']); $userids = []; foreach ($courseids として $courseid) { $context = context_course::instance($courseid); $courseusers = get_enrolled_users($context, '', 0, 'u.id'); $userids = array_merge($userids, array_keys($courseusers)); }
ただし、これは非常に非効率です。コース ID のリストに基づいて、これらすべてのコースの登録ユーザーのリストを生成するカスタム SQL クエリを作成したほうがよいでしょう (コード内を見てください)。 ) SQL クエリなどの構築方法を確認します)。