问题描述
当我尝试通过 enrol_manual_enrol_users 将用户注册到 Moodle 时,出现以下错误
Array ( [exception] => invalid_parameter_exception [errorcode] => invalidparameter [message] => 检测到无效参数值 [debuginfo] => 注册 => 检测到无效参数值:在单一结构中缺少必需的键:roleid)>
这是我的代码
$MoodleRest = new MoodleRest('http://localhost/moodle/webservice/rest/server.PHP',$this->token);
$enrolment = array(
"userid" => $user_id,"courseid" => $course_id,"roleid" => 4
);
$enrolments = array(array($enrolment));
$params = array( 'enrolments' => $enrolments );
$result_query = $MoodleRest->request('enrol_manual_enrol_users',$params);
if (!empty($result_query['exception'])) {
print_r(array('Error querying enroll',$result_query));
die();
}
解决方法
$MoodleRest = new MoodleRest('http://40.81.1.212/moodle/webservice/rest/server.php',$this->token);
$par = array( //e_s_s
'enrolments' => array( //e_m_s
array( //e_s_s
'userid' =>$user_id,'courseid' =>$course_id,// PARAM_NUMBER VALUE_REQUIRED[]
'roleid' =>$role_id //PARAM_RAW VALUE_OPTIONAL [] ))
);
print_r($par);
echo "<br><br>";
$result_query = $MoodleRest->request('enrol_manual_enrol_users',$par);
if (!empty($result_query['exception'])) {
print_r(array('Error querying enroll',$result_query));
//die();
}
var_dump($result_query);
echo '</br>************************** Server Response EnrollUser()**************************</br></br>';