发布于2026-07-11 阅读(0)
扫一扫,手机访问
说几个核心判断:ThinkPHP 6.0的多应用模式,并不是改个配置文件就能跑通的。它依赖扩展、目录结构、命名空间和路由加载四者严格对齐。缺了任何一环,等待你的就是App not exists或者Class not found的报错。

TP6.0默认并不支持多应用能力,topthink/think-multi-app是一个硬性前置依赖。不装它,目录建得再标准也是白搭。
composer require topthink/think-multi-appapp/controller目录及其下的所有文件——只要这个目录存在,框架就会强制降级为单应用模式,哪怕你设置了app_multi_module => true也无效config/app.php中是否已启用:'app_multi_module' => true;需要注意的是,较新版本(6.0.2+)已经废弃了auto_multi_app,不用再管它每个应用必须是app/下的小写子目录,并且命名空间必须与路径完全匹配。大小写或符号上的任何错误,都会导致404或类加载失败。
php think app:create adminapp/admin/controller/Index.php、app/admin/route.php、app/admin/config.phpnamespace app\admin\controller;,不能写成app\Admin\controller或app\controllerview/admin/,比如fetch('index')实际读取的是view/admin/index.htmlroute/route.php是全局入口,但子应用的路由文件并不会自动加载。如果不手动import,app/admin/route.php就只是一纸空文。这一点容易被忽略,但却是实际开发中一个比较常见的踩坑点。
route/route.php中添加:Route::import('admin', 'admin');'admin'必须与app/admin目录名完全一致,大小写敏感'admin'是路由分组标识,会影响URL前缀,比如访问/admin/dashboardapp/admin/route.php内部应写Route::get('dashboard', 'Index/dashboard'),避免与主路由发生冲突ThinkPHP的配置合并机制是“应用级覆盖全局”,而不是“开关式启用”。想让admin应用使用独立数据库,关键不在于打开某个开关,而是要把配置文件放在正确的位置。
config/admin/目录下,例如config/admin/database.php会自动覆盖全局的database.phpruntime/admin/和runtime/index/互不干扰config/app.php中添加:'default_app' => 'index'
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8