首页 > 解决方案 > Moodle enrol_manual_enrol_users api 错误

问题描述

当我尝试通过 enrol_manual_enrol_users 注册用户时,我收到了以下错误

数组( [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();
}  

标签: phpmoodle-api

解决方案


    $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>';

推荐阅读