thinkphp6多应用模式一直找不到控制器,一直走单应用的controller的解决办法
一直好好的thinkPHP6项目,因公司换了台配置高的电脑,搭建好环境后,thinkphp6就一直报找不到控制器。
控制器不存在:app\controller\Admin。
根据网上搜索的办法,一一都试了,都不行,纠结很久后,终于发现是新环境的 Composers
版本升级到了2.0的,不是原来的1.8版本了。composer2.0
的composer/installed.json格式的变化导致ThinkPHP6.0扩展安装出错。
thinkphp6官方第一时间及时发布了兼容版本V6.0.5
确保大家可以体验到Composer2
的优势性能。
解决办法升级thinkphp6的版本,V6
版本开始仅支持Composer
安装及更新,支持上个版本的无缝更新,直接使用
composer update
问题解决。
如果你不是composer版本的问题的话,可以参考下面这些解决办法
解决办法一
检查是否安装多应用模式扩展:think-multi-app 。
没有安装的话,执行以下命令安装
composer require topthink/think-multi-app
执行看下,现在能不能访问了
不能访问继续尝试
解决办法二:
tp6识别单应用的标识就是app目录下的controller目录,所以单应用切换成多应用模式的方法,就是删除app下的controller目录。
一般情况下,这时候你访问多应用模块的url时,已经可以成功了,比如访问http://serverName/index.php/shop,可以正确定位到shop应用下的controller中的index方法。
还不能解决的话
解决办法三:
查看Nginx配置正确
location / {
#访问路径的文件不存在则重写URL转交给ThinkPHP处理
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
还不行的话
解决办法4:
检查 config/app.php 里的,多应用模式是否打开
// 自动多应用模式
'auto_multi_app' => true,
// 开启应用快速访问
'app_express' => true,
// 默认应用
'default_app' => 'home',
如果还不行的话
解决办法5:
检查控制器的命名空间是否正确
还不行
解决办法6:
拿块砖,往自己头上拍下~~
版权声明
本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。
评论