tp5 中 Argument 1 passed to think\Hook::import() must be of the type array, integer given 问题的解决

现在在做的项目使用的是TP5框架,今天在手动创建创建新模块的时候,发生了一个问题,错误提示是

Argument 1 passed to thinkHook::import() must be of the type array, integer given, called in D:virtualhostchangzhicz_erpthinkphplibrarythinkApp.php on line 509

就是下面这个样子


原因分析


因为我是手动创建的新模块,所以是先创建了模型、控制器、视图,后面又创建了common、config、tags三个文件,里面都只有一个PHP代码的起始标签,最终目录结构如下:

问题就在后面创建的三个文件,而且根据报错内容,是跟 Hook 有关,那就是tags.php的问题了


问题解决


那下面就顺着tp5的Hook方向找,根据框架的运行流程可以知道,tags.php会在程序初始化时载入,载入后会去加载tags.php中的配置而且是不加判断直接传入到Hook的import中的,这样就会导致这样的一个错误

所以如果tags.php里面暂时没有内容那么就需要在文件中返回一个空数组

<?php

return [];

这样,问题就解决了

飞行猿博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论