debug_grading_panel.md 2.8 KB

调试指南:查看评分面板问题

已添加的调试功能

我已经为 GradingPanel 组件添加了详细的日志记录,包括:

  • ✅ 开始加载试卷时的参数
  • ✅ 查询到的题目数量
  • ✅ 题目数据处理过程
  • ✅ 异常信息(如果有)

测试步骤

1. 清空日志

cd FilamentAdmin
echo "" > storage/logs/laravel.log

2. 访问页面并选择试卷

  1. 打开浏览器,访问:http://fa.test/admin/upload-exam-paper
  2. 点击【选择已有试卷评分】
  3. 选择老师和学生(吴同学)
  4. 选择试卷(选择最新的一份)

3. 查看日志

在另一个终端窗口中,实时监控日志:

tail -f storage/logs/laravel.log | grep "GradingPanel"

或者查看完整日志:

cat storage/logs/laravel.log | grep "GradingPanel" -A 5 -B 2

预期日志输出

正常情况(题目存在)

[YYYY-MM-DD HH:MM:SS] INFO GradingPanel: 开始加载试卷题目 {"selected_paper_id":"paper_xxx",...}
[YYYY-MM-DD HH:MM:SS] INFO GradingPanel: 查询到的题目数量 {"paper_id":"paper_xxx","questions_count":6,"is_empty":false}
[YYYY-MM-DD HH:MM:SS] INFO GradingPanel: 开始处理题目数据
[YYYY-MM-DD HH:MM:SS] INFO GradingPanel: 题目数据处理完成 {"questions_count":6,"sample_question":{...}}
[YYYY-MM-DD HH:MM:SS] INFO GradingPanel: 加载完成 {"final_questions_count":6,"paper_id":"paper_xxx"}

异常情况(有问题)

[YYYY-MM-DD HH:MM:SS] WARNING GradingPanel: 题目为空,设置空数据提示
[YYYY-MM-DD HH:MM:SS] INFO GradingPanel: 加载完成 {"final_questions_count":1,"paper_id":"paper_xxx"}

或:

[YYYY-MM-DD HH:MM:SS] ERROR GradingPanel: 加载试卷题目失败 {"paper_id":"paper_xxx","error":"具体错误信息",...}

可能的问题和解决方案

问题1:日志中没有 GradingPanel 相关记录

原因:组件的 mount()updatedSelectedPaperId() 方法没有被调用 解决

  • 检查父视图是否正确传递了 :selectedPaperId 参数
  • 确认缓存已清理:php artisan view:clear

问题2:日志显示 questions_count: 0

原因:数据库查询返回空结果 解决

  • 检查试卷ID是否正确
  • 验证数据库中是否存在该试卷的题目

问题3:日志显示异常

原因:代码执行出错 解决

  • 查看完整的错误信息和堆栈跟踪
  • 根据错误信息修复问题

快速验证命令

# 1. 检查日志中是否有 GradingPanel 记录
grep "GradingPanel" storage/logs/laravel.log | tail -20

# 2. 查看最近的错误
tail -50 storage/logs/laravel.log | grep -A 10 "ERROR"

# 3. 查看所有 GradingPanel 相关的日志
grep "GradingPanel" storage/logs/laravel.log

请执行以上测试步骤,然后将日志输出结果发送给我,我会根据日志分析具体问题所在。