今天将我的进销存系统thinkphp内核框架升级到thinkphp6的时候,一切工作均按序完成,当访问的时候无论访问任何一个控制的时候都会出现找到不控制器的现象,具体错误页面如下图:
本人知晓代码肯定是没有任何问题的,那么出现这个错误的原因肯定是升级的时候造成内核错误,通过百度搜索了解,有很多朋友踩过这样坑,大致原因如下:
因为安装多应用模式扩展执行的指令没有生效 php think service:discover 自动注册扩展包的系统服务。
为什么自动注册拓展包服务失败,详见代码:
vendor/topthink/framework/src/think/console/command/ServiceDiscover.php
第34行代码$package['extra']['think']['services']为空,导致生成自动注册服务文件
services.php 中没有注册的代码。
解决方法:
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" );
问题解决,不知道你是否也通过这个方法处理好了呢!
扫码关注公众号
长沙网站设计,长沙软件开发,长沙进销存开发,php进销存系统,ViooMa收银系统,ThinkPHP框架进销存系统
湘ICP备19023859号-1
Copyright©2020 长沙唯马网络科技有限公司. All Rights Reserved.