[英]How can I find the user role using user id in moodle
我是Moodle
新手,我有以下代碼:
$userDetails = $DB->get_record('user', array('id' => $singleuser->userid));
var_dump($userDetails);
echo $userDetails->firstname." ".$userDetails->lastname
它在Moodle
有用戶表的詳細信息。 如何找到教師、管理員、學生等角色?
這里我有$singleuser->userid
。 我正在打印用戶全名。 我需要這個角色,如下所示:
echo $userDetails->firstname." ".$userDetails->lastname.$role.
我如何找到角色? 請指導我。
Moodle版本:2.9.1
您需要知道在Moodle中的哪個位置。 Moodle(通常)沒有“學生”或“老師”的全局概念-教師是特定課程的老師,學生是特定課程的學生。
假設您知道要顯示其角色的課程的ID,則可以編寫以下內容:
$rolestr = array();
$context = context_course::instance($courseid);
$roles = get_user_roles($context, $singleuser->userid);
foreach ($roles as $role) {
$rolestr[] = role_get_name($role, $context);
}
$rolestr = implode(', ', $rolestr);
echo "The users roles are {$rolestr} in course {$courseid}";
moodle在諸如about..etc之類的靜態頁面中獲得用戶角色
$context = context_module::instance($cm->id);
$roles = get_user_roles($context, $USER->id, true);
foreach ($roles as $role) {
}
嘗試這個,
$context = get_context_instance (CONTEXT_SYSTEM);
$roles = get_user_roles($context, $USER->id, false);
$role = key($roles);
$roleid = $roles[$role]->roleid;
或嘗試使用get_user_roles函數,這將返回在課程,站點或模塊的上下文中分配給特定用戶的角色列表
$context = get_context_instance(CONTEXT_COURSE, $courseid, true);
$roles = get_user_roles($context, $USER->id, true);
您還可以在模塊的上下文中獲取角色。
$context = get_context_instance(CONTEXT_MODULE, $cm->id, true);
$roles = get_user_roles($context, $USER->id, true);
我沒有courseid,是否可以通過添加以下代碼來獲得角色。,
$context = context_system::instance();
$roles = get_user_roles($context, $userid, false);
$role = key($roles);
$roleid = $roles[$role]->roleid;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.