Web服务调用 - core_group_create_groups - 在参数数组中检测到意外的键(courseid)

时间:2016-09-30 22:12:07

标签: moodle

我遇到了特定的Rest网络服务电话问题:

方法:core_group_create_groups

抛出以下错误:

  

在参数数组中检测到意外的键(courseid)。

我正在传递文档中定义的确切属性:

_ //List of group object. A group has a courseid, a name, a description and an enrolment key.
list of ( 
    object {
        courseid int   //id of course
        name string   //multilang compatible name, course unique
        description string   //group description text
        descriptionformat int  Default to "1" //description format (1 = HTML, 0 = MOODLE, 2 = PLAIN or 4 = MARKDOWN)
        enrolmentkey string  Optional //group enrol secret phrase
        idnumber string  Optional //id number
    } 
)_

我正在使用Moodle 3.1+(Build:20160623)

为什么它不喜欢请求中courseid的任何想法,即使它是一个有效的参数?

2 个答案:

答案 0 :(得分:1)

这里也有Moodle文档的问题。 实际上,在文档中标记为可选的参数是必需的。

例如: 在方法'core_role_assign_roles'中你必须传递'contextlevel'和'instanceid',doc说是可选的。

我刚刚使用'core_group_create_groups'方法,它运行正常。这次文档正确通过了3个参数:courseid / name / description。

用过:

"groups[0][courseid]=2&groups[0][name]=grupo2&groups[0][description]=desc grupo2"

也许仔细检查你传递的代码是否存在;) b)真的是课程ID。

希望它有所帮助, 罗德里戈

答案 1 :(得分:0)

您必须使用“ groups”键调用网络服务,以使其正常运行(即,这段代码在PHP中对我有效):

`$this->callWSFunction(
'core_group_create_groups',[
            groups =>[ 
                0 => 
                    [
                        'courseid' => $id,
                        'name' => $groupname,
                        'description' => $groupdescription
                     ]
                 ]
            ]
         );`