Moodle enrol_manual_enrol_users api 错误

问题描述

当我尝试通过 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>';