全部
常见问题
产品动态
精选推荐
功能建议

分析中 已回复 待规划 {{opt.name}}
分析中 已回复 待规划
多门v4.0添加等级报服务器内部错误

管理 管理 编辑 删除

这是一个 PHP 运行时错误(Error),具体原因是代码试图访问一个不存在的数组键名。

简单来说:程序在 AgentLevelTaskServices.php 文件的第 396 行,尝试读取 $_POST$_GET 参数中的 grade 字段,但这个字段并没有被传递过来,导致程序报错中断。

错误核心解析

  • 错误类型:Undefined array key "grade"(未定义的数组键“grade”)
  • 错误文件:app/services/spread/AgentLevelTaskServices.php
  • 错误行号:396

错误定位

checkTypeTask 方法的第 396 行(根据您提供的错误堆栈),问题出在这个循环中:

// 第 391-400 行左右
$taskList = $this->dao->getTypTaskList($data['type']);
if ($taskList) {
    foreach ($taskList as $taskInfo) {
        if (is_null($taskInfo['grade'])) continue;  // ← 这里访问了 'grade'
        if ($levelInfo['grade'] > $taskInfo['grade'] && $data['number'] <= $taskInfo['number']) {
            throw new ValidateException('不能小于低等级同类型任务限定数量');
        }
        if ($levelInfo['grade'] < $taskInfo['grade'] && $data['number'] >= $taskInfo['number']) {
            throw new ValidateException('不能大于高等级同类型任务限定数量');
        }
    }
}

问题$taskInfo 数组中没有 grade 这个键,但代码直接访问了 $taskInfo['grade']

解决方案

修改 Dao,使用 append 或手动处理(推荐)

修改 app/dao/spread/AgentLevelTaskDao.phpgetTypTaskList 方法:

/**
 * 获得所有同类型任务
 * @param int $type
 * @return array
 * @throws \think\db\exception\DataNotFoundException
 * @throws \think\db\exception\DbException
 * @throws \think\db\exception\ModelNotFoundException
 */
public function getTypTaskList(int $type)
{
    $list = $this->getModel()
        ->with(['level' => function ($query) {
            $query->field('id,grade')->where('status', 1)->where('is_del', 0);
        }])
        ->where('type', $type)
        ->where('is_del', 0)
        ->where('status', 1)
        ->order('number desc')
        ->select()
        ->toArray();
    
    // 手动将关联的 grade 提取到顶层
    foreach ($list as &$item) {
        $item['grade'] = $item['level']['grade'] ?? null;
        unset($item['level']); // 可选:移除关联数组
    }
    
    return $list;
}


{{voteData.voteSum}} 人已参与
支持
反对
请登录后查看

Mortal 最后编辑于2026-06-29 17:40:44

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}} 【已收集】
{{item.floor}}# 沙发 板凳 地板 {{item.floor}}# 【已收集】
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
分享
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
收起 展开更多
查看更多
打赏
已打赏¥{{reward_price}}
12
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服
CRMEB咨询热线 400-8888-794

扫码领取产品资料

功能清单
思维导图
安装教程
CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服