如何为 moodle 中的嵌套网络服务创建正确的 return 函数
How to create the right return function for a nested webservice in moodle
我正在尝试在我的 Moodle 网络服务中构建正确的响应函数。
我打印了我的 json 响应的 php 结构:
[
{
"name":"Quiz",
"id":"1",
"theme":"green",
"quizzes":[
{
"type":"single-select-item",
"question":"Question example 1?",
"options":[
"<p>answer1<br><\/p>",
"<p>answer2<br><\/p>",
"<p>answer3<br><\/p>",
"<p>answer4<br><\/p>"
],
"answer":"1"
},
{
"type":"single-select-item",
"question":"<p>Question example 1?<br><\/p>",
"options":[
"<p>answer1<br><\/p>",
"<p>answer2<br><\/p>",
"<p>answer3<br><\/p>",
"<p>answer4<br><\/p>"
],
"answer":"2"
}
]
}
]
但我无法为 moodle 网络服务编写正确的 return 函数。
我写了return函数如下
return new external_multiple_structure(
new external_single_structure(
array(
"name"=> new external_value(PARAM_TEXT, 'quiz name'),
"id"=> new external_value(PARAM_TEXT, 'quiz id'),
"theme"=> new external_value(PARAM_TEXT, 'quiz theme'),
"quizzes" => new external_multiple_structure(
new external_single_structure(
array(
"type" => new external_value(PARAM_TEXT, 'answer type'),
"question" => new external_value(PARAM_TEXT, 'question'),
"options" => new external_multiple_structure(
new external_value(PARAM_TEXT, 'options')
),
"answer" => new external_value(PARAM_TEXT, 'right answer')
)
)
)
)
)
);
但我仍然收到以下异常。我的 return 函数有什么问题?
{"exception":"invalid_response_exception","errorcode":"invalidresponse","message":"Invalid response value detected"}
有什么建议吗?
谢谢
我刚发现问题!!
return 函数是正确的,但我收到异常,因为结构中的某些文本包含 HTML 标签,如和转义字符,这些字符会破坏 return 函数组合。
最后我用这个 PARAM_RAW 代替了 PARAM_TEXT 并且效果很好!
我正在尝试在我的 Moodle 网络服务中构建正确的响应函数。 我打印了我的 json 响应的 php 结构:
[
{
"name":"Quiz",
"id":"1",
"theme":"green",
"quizzes":[
{
"type":"single-select-item",
"question":"Question example 1?",
"options":[
"<p>answer1<br><\/p>",
"<p>answer2<br><\/p>",
"<p>answer3<br><\/p>",
"<p>answer4<br><\/p>"
],
"answer":"1"
},
{
"type":"single-select-item",
"question":"<p>Question example 1?<br><\/p>",
"options":[
"<p>answer1<br><\/p>",
"<p>answer2<br><\/p>",
"<p>answer3<br><\/p>",
"<p>answer4<br><\/p>"
],
"answer":"2"
}
]
}
]
但我无法为 moodle 网络服务编写正确的 return 函数。
我写了return函数如下
return new external_multiple_structure(
new external_single_structure(
array(
"name"=> new external_value(PARAM_TEXT, 'quiz name'),
"id"=> new external_value(PARAM_TEXT, 'quiz id'),
"theme"=> new external_value(PARAM_TEXT, 'quiz theme'),
"quizzes" => new external_multiple_structure(
new external_single_structure(
array(
"type" => new external_value(PARAM_TEXT, 'answer type'),
"question" => new external_value(PARAM_TEXT, 'question'),
"options" => new external_multiple_structure(
new external_value(PARAM_TEXT, 'options')
),
"answer" => new external_value(PARAM_TEXT, 'right answer')
)
)
)
)
)
);
但我仍然收到以下异常。我的 return 函数有什么问题?
{"exception":"invalid_response_exception","errorcode":"invalidresponse","message":"Invalid response value detected"}
有什么建议吗? 谢谢
我刚发现问题!! return 函数是正确的,但我收到异常,因为结构中的某些文本包含 HTML 标签,如和转义字符,这些字符会破坏 return 函数组合。 最后我用这个 PARAM_RAW 代替了 PARAM_TEXT 并且效果很好!