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

PrestaShop 1.7.8.8升级后商品页面间歇性空白报错求助

PrestaShop 1.7.8.8 商品页面间歇性空白问题解决方法

问题根源

报错明确指向HookCore::callHookOn()方法的第三个参数要求是array,但实际传入了null,且问题间歇性出现,说明挂载到filterProductContent钩子的某个模块在特定场景下传递/返回了null,或钩子调用上下文的参数偶尔缺失。

解决步骤

1. 定位关联模块

首先找到所有挂载了filterProductContent钩子的模块:

  • 数据库查询:执行SQL语句
    SELECT m.name FROM ps_hook_module hm JOIN ps_module m ON hm.id_module = m.id_module WHERE hm.hook_name = 'filterProductContent';
    
    (注意替换表前缀ps_为你的实际前缀)
  • 后台操作:进入后台「模块 > 位置」页面,搜索filterProductContent钩子名称,查看关联模块列表。

2. 排查触发模块

逐个禁用上述模块,每次禁用后多次刷新商品页面测试,找到导致间歇性空白的模块:

  • 禁用模块后问题消失,即可锁定该模块为故障源。

3. 修复模块代码

找到该模块的钩子实现代码(通常是模块目录下的hooks/filterProductContent.php,或主模块文件中的hookFilterProductContent()方法):

  • 检查方法是否在某些场景下返回了null,确保始终返回数组类型(即使是空数组[]);
  • 检查方法内是否有未处理的异常,导致参数传递异常。

4. 临时应急修复(不推荐长期使用)

若暂时无法修复模块,可临时修改核心文件ProductController.php第384行的Hook::exec调用:
将原代码中第三个参数的null替换为[](空数组),确保符合方法参数类型要求:

Hook::exec('filterProductContent', [], null, false, true, false, null, true)

5. 额外排查点

  • 检查服务器缓存(如OPcache、APC)是否存在异常,尝试重启缓存服务或清理缓存;
  • 查看服务器PHP错误日志,排查是否有数据库连接波动、文件权限异常等间歇性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:20:29