Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建课程API在Moodle中不起作用_Php_Web Services_Api_Post_Moodle - Fatal编程技术网

Php 创建课程API在Moodle中不起作用

Php 创建课程API在Moodle中不起作用,php,web-services,api,post,moodle,Php,Web Services,Api,Post,Moodle,我是新来穆德尔的。我已经使用web服务api创建了用户,并且正在成功运行。现在我想以同样的方式创建一个课程。我正在使用“核心课程创建课程”功能来实现这一点。我的请求的正文是 $courses=array("courses" => array( 0=>array( "fullname" => $fullname, "shortname" =>

我是新来穆德尔的。我已经使用web服务api创建了用户,并且正在成功运行。现在我想以同样的方式创建一个课程。我正在使用“核心课程创建课程”功能来实现这一点。我的请求的正文是

$courses=array("courses" =>
            array(
                0=>array(
                    "fullname" => $fullname,
                    "shortname" => $shortname,
                    "categoryid" => $categoryid,
                    "idnumber" =>$idnumber,
                    "summary"=>$summary,
                    "summaryformat"=>$summaryformat
                )
            )
        );
每当我运行此程序时,它都会给我响应“{\”异常\“:\”moodle\u异常\“,\”错误代码\“:\”errorcatcontextnotvalid\“,\”消息\“:\”您无法在类别上下文(类别id:101)中执行函数。上下文错误消息是:检测到无效的参数值\“}”


但id为101的课程类别“编程”存在于我的moodle站点中。请帮帮我。提前感谢。

我错了,categoryid不是类别的id,而是类别的序列id。现在如果我给2,它就可以了

$token = $this->config->item('id_token');
    $domainname = $this->config->item('domainname');
    $functionname = 'core_course_create_courses';
    $restformat = 'json';

    //crear objeto de acuerdo a la estructura para crear Categoría en Moodle

    $curso = new stdClass();        
    $curso->fullname = $data['patron']['nombre']; 
    $curso->shortname = $data['patron']['nombre']; // Is unique
    **$curso->idnumber = $id; // consecutive
    $curso->visible = 1;
    $curso->categoryid = 6; 

    $modulos = array($curso);

    $params = array('courses' => $modulos);

    header('Content-Type: text/plain');
    $serverurl = $domainname . '/webservice/rest/server.php' . '?wstoken=' . $token . '&wsfunction=' . $functionname;
    require_once(APPPATH . 'libraries/curl.php');
    $curl = new curl;

    $restformat = ($restformat == 'json') ? '&moodlewsrestformat=' . $restformat : '';
    $resp = $curl->post($serverurl . $restformat, $params);
    return $resp;