Вызов веб-служб — core_group_create_groups — неожиданные ключи (идентификатор курса) обнаружены в массиве параметров

#moodle

#moodle

Вопрос:

У меня возникла проблема с конкретным вызовом веб-службы Rest :

Метод: core_group_create_groups

Выдает следующую ошибку:

Неожиданные ключи (идентификатор курса) обнаружены в массиве параметров.

Я передаю точные свойства, определенные в документации:

 _ //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 (Сборка: 20160623)

Есть идеи, почему это не нравится courseid в запросе, даже если это допустимый параметр?

Ответ №1:

здесь также возникают проблемы с документацией Moodle. параметры, помеченные в документах как необязательные, на самом деле являются обязательными.

пример: в методе ‘core_role_assign_roles’ вы ДОЛЖНЫ передать ‘contextlevel’ и ‘instanceid’, указание документа необязательно.

Я просто использовал метод ‘core_group_create_groups’, и он отлично работал. на этот раз в документах были правильно переданы 3 параметра: идентификатор курса / имя / описание.

используется как:

 "groups[0][courseid]=2amp;groups[0][name]=grupo2amp;groups[0][description]=desc grupo2"
  

возможно, дважды проверьте, существует ли код, который вы передаете в courseid а); б) действительно является идентификатором курса.

надеюсь, это поможет, Родриго

Ответ №2:

Вы должны вызвать веб-сервис, используя ключ «groups», чтобы он работал правильно (т. Е. Этот код работает для меня на PHP):

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