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

IPS论坛后台仪表盘参数错误及银行现金统计异常求助

问题1:ArgumentCountError 参数数量不匹配

问题原因

报错显示调用IPS\Theme\class_game_front_admincp::dashboard()时传入9个参数,但方法要求10个。排查后可能是以下情况:

  • 对应模板文件中admincp的dashboard方法仅定义了9个参数,和调用时传递的10个参数不匹配
  • 某个Dashboard_Count_*统计方法未正确返回值(比如抛出异常提前终止),导致实际传递的有效参数不足10个

修复步骤

  1. 找到admincp模板文件(通常路径为applications/game/admincp/templates/admincp.php),查看dashboard方法定义,确保它接受10个参数,且参数顺序和_dashboard()中传递的$Count_Characters到$Count_MoneyBank一致
  2. 检查所有Dashboard_Count_*方法的返回逻辑,确保每个方法都能正常返回数值
  3. 若模板方法确实只需要9个参数,调整_dashboard()中的调用代码移除多余参数;若模板方法需要10个参数,确认每个传递的变量都有有效值
问题2:银行现金统计数值错误

问题原因

Dashboard_Count_MoneyBank()方法中使用count(char_bankcash),这是统计表中char_bankcash字段非空的记录行数,而非所有记录的现金总和。当前显示的6$实际是有6条非空银行现金记录,不是总金额。

修复步骤

将方法中的count改为sum,修改后代码如下:

public function Dashboard_Count_MoneyBank()
{
    try
    {
        // 替换count为sum,计算所有char_bankcash的总和
        $result = \IPS\Db::i()->select( 'sum(`char_bankcash`)', 'ipb_characters')->first();
        // 处理无记录时总和为null的情况
        $result = $result ?: 0;
    }
    catch( \UnderflowException $e )
    {
        \IPS\Output::i()->error( 'no_module_permission', '2C122/1', 403, '' );
    }
    return $result;
}

修改后该方法会返回所有用户银行现金的总和,显示结果将与数据库实际总金额一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:20:44