thinkphp6出现控制器不存在:app\controller\的解决方法,throw new HttpException(404, 'controller not exists:' . $e->g


今天将我的进销存系统thinkphp内核框架升级到thinkphp6的时候,一切工作均按序完成,当访问的时候无论访问任何一个控制的时候都会出现找到不控制器的现象,具体错误页面如下图:

image.png

本人知晓代码肯定是没有任何问题的,那么出现这个错误的原因肯定是升级的时候造成内核错误,通过百度搜索了解,有很多朋友踩过这样坑,大致原因如下:

  1. 因为安装多应用模式扩展执行的指令没有生效 php think service:discover 自动注册扩展包的系统服务。

  2. 为什么自动注册拓展包服务失败,详见代码:

  3. vendor/topthink/framework/src/think/console/command/ServiceDiscover.php

  4. 第34行代码$package['extra']['think']['services']为空,导致生成自动注册服务文件

  5. services.php 中没有注册的代码。

  6. image.png

解决方法:

1、找到Vendor/Composer/installed.json文件,搜索services子项找到所有的services的值(我的是三个),整理出来就是下面这几个:

"think\\captcha\\CaptchaService",
"think\\app\\Service",
"think\\trace\\Service"

2、找到Vendor/services.php可以看到第4行是:

return array (

);

3、将第1步在installed.json找到的service值复制到services.php的数组里如下:

return array (
"think\\captcha\\CaptchaService",
"think\\app\\Service",
"think\\trace\\Service"
);

问题解决,不知道你是否也通过这个方法处理好了呢!

注:本文转载自唯马网络,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。

评论


匿名用户:
2024-02-02 21:01:43

1111111经济条件关于教育教育他