You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Moodle备份测试时出现‘Missing required parameter (id)’错误求助

Moodle测试备份提示“Missing required parameter (id)”问题排查方案

核心原因推测

  • 迁移后数据关联断裂:从Moodle 1.9.9升级到3.11.6时,测试(Quiz)对应的课程模块表(mdl_course_modules)或测试主表(mdl_quiz)的主键id出现关联异常,备份脚本无法正确读取测试活动的唯一标识ID——这里的id要么是测试在mdl_quiz表的主键,要么是其关联的课程模块ID。
  • 备份触发的参数传递失效:页面触发备份时,URL未正确携带测试的id参数,导致后端脚本接收不到必填标识。
  • 测试活动隐性损坏:虽然测试能正常运行,但可能存在隐藏的字段缺失、权限关联异常,导致备份初始化流程无法获取有效id。

具体排查修复步骤

  • 直接校验数据库关联:
    1. 找到对应课程的ID,在mdl_course_modules表中筛选course字段匹配课程ID、module字段为quiz的记录,确认每条记录的id(课程模块ID)和instance(关联的mdl_quiz表主键)均不为空且有效。
    2. 检查mdl_quiz表中对应instance值的记录,确认id字段存在,且course字段与所属课程ID一致。
  • 手动构造备份URL测试:
    拼接备份地址:/backup/backup.php?id=[课程模块ID],把方括号内替换为你从mdl_course_modules查到的有效id,访问后观察是否能正常进入备份流程。如果可以,说明是前端按钮的参数传递出了问题。
  • 重建测试活动:
    如果数据库存在关联异常,先导出该测试的题目备份,然后在课程编辑页删除原测试,重新创建测试并导入题目,再尝试备份。
  • 开启深度调试:
    进入站点管理→开发→调试,设置“调试消息”为「开发者级别」,“调试输出”为「页面内显示」,再次触发备份,此时会显示完整的错误堆栈,能直接定位到哪个环节缺失了id参数。

内容的提问来源于stack exchange,提问作者Mikhail Petrov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 04:50:26