亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Moodle 本地插件中的 invalid_response_Exception

Moodle 本地插件中的 invalid_response_Exception

PHP
汪汪一只貓 2023-06-24 15:30:07
我已經安裝了本地插件并設法檢索單個數組。但是當我嘗試加載數組列表時,它會拋出錯誤?!罢n程名稱”存儲在結果數組的第二個位置,如下所示。class local_get_completion_overview_external extends external_api {    public static function get_completion_overview_parameters() {        return new external_function_parameters(            array(                'field' => new external_value(PARAM_ALPHA, 'The field to search can be left empty for all courses or:                    id: course id', VALUE_DEFAULT, '')            )        );    }    public static function get_completion_overview(){        global $CFG, $DB;        require_once($CFG->dirroot . '/course/lib.php');        require_once($CFG->libdir . '/filterlib.php');        $params = self::validate_parameters(self::get_completion_overview_parameters($field = ''),            array(                'field' => $field            )        );        $sql = "SELECT DISTINCT cr.id AS courseid,                cr.fullname AS coursename,                COUNT(DISTINCT ra.id ) AS enrols,                COUNT(DISTINCT cc.timecompleted) AS completed                FROM {course} cr                JOIN {context} ct ON ( ct.instanceid = cr.id )                LEFT JOIN {role_assignments} ra ON ( ra.contextid = ct.id ) and ra.roleid = 5                LEFT JOIN {course_completions} cc ON cc.course = cr.id                GROUP BY  cr.fullname, cr.id                ORDER BY coursename";        $courseids = array();        $warnings = array();        // $requestedcourseids = $params['field'];        if (empty($params['field'])) {            $courses = $DB->get_records_sql($sql, array());        }        if(!empty($courses)){            $coursesdata = array();            $currentcourseid = null;            $course = null;我發現一個 Moodle 論壇說不好的語言類型會導致這個問題,所以應該改變它。(https://moodle.org/mod/forum/discuss.php?d=355334)我想這可能是這種情況,因為錯誤從 return() 中的第二個數組拋出,這是一個文本值,但我可能是錯的最好在我做下一步之前問清楚。提前致謝,如有任何幫助,我們將不勝感激!
查看完整描述

1 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

VALUE_OPTIONAL您可以通過將子句添加到返回數據來解決該問題:


public static function get_completion_overview_returns() {

        return new external_single_structure(

            array(

                'course' => new external_multiple_structure(

                    new external_single_structure(

                        array(

                            'courseid' => new external_value(PARAM_INT, ''),

                            'coursename' => new external_value(PARAM_TEXT, '', VALUE_OPTIONAL),

                            'enrols' => new external_value(PARAM_INT, '', VALUE_OPTIONAL),

                            'completed' => new external_value(PARAM_INT, '', VALUE_OPTIONAL),

                        )

                    )

                ),

            )

        );

    }

然后您可能應該檢查是否有空數據案例。


查看完整回答
反對 回復 2023-06-24
  • 1 回答
  • 0 關注
  • 108 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號