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

使用kartik-v/yii2-grid导出PDF时遇PHP 7.4 count()警告问题

解决kartik-v/yii2-grid导出PDF时count()参数不可数的警告

问题原因

PHP 7.4 对count()函数的参数校验更严格,当传入非数组且未实现Countable接口的对象/值时,会直接触发警告。而kartik-v/yii2-grid的PDF导出模块在特定场景下(比如数据为空、配置错误)可能传入了不符合要求的参数,导致触发该警告。

解决方案

  • 检查dataProvider有效性
    确保PDF导出时,GridView绑定的dataProvider是有效的ActiveDataProvider或实现Countable的数据集,避免返回null或非可数对象。排查导出动作中是否有对dataProvider的特殊修改,导致数据结构异常。

  • 校验导出columns配置
    确认PDF导出的columns配置为数组类型,避免出现单个字段值(如'columns' => 'title')。正确写法应为'columns' => ['id', 'title', 'created_at'],确保count()能正常处理该参数。

  • 升级组件到兼容版本
    旧版本的kartik-v/yii2-grid可能未适配PHP7.4的新特性,替换为官方仓库的最新稳定版,多数情况下这类兼容问题已被修复。

  • 应急源码修复(不推荐)
    如果暂时无法升级,找到触发警告的代码位置,在count()调用前增加可数性判断:
    将

    count($targetVar);
    

    修改为

    is_countable($targetVar) ? count($targetVar) : 0;
    

    通常该代码位于PDF导出相关的类文件中(如PdfExport类)。

验证

修改完成后重新触发PDF导出,确认警告消失,同时检查导出的PDF内容完整、格式正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:58:19