简介:
本文介绍如何在 ThinkPHP8 多应用或多路由模式下,在 Think-Swoole 中启动时访问子路由,解决路由不存在的问题。
app/
├── api/
│ ├── route/
│ │ ├── api.php
│ │ └── user.php
│ └── ...
├── adminapi/
│ ├── route/
│ │ ├── api.php
│ │ └── user.php
│ └── ...
└── route/
└── app.php
问题现象:
在 ThinkPHP8 中,使用 Think-Swoole 启动多应用或多路由模式时,访问子路由会提示路由不存在。
问题原因:
Think-Swoole 默认只加载根目录下的 route/app.php 路由文件,而子路由通常位于各个应用或路由目录下。
解决方案:
在 route/app.php 文件中,使用 glob 函数加载所有应用或路由目录下的路由文件,即可解决问题。
代码示例:
### 修改 route/app.php
<?php
use think\facade\Route;
// 加载所有应用目录下的路由文件
foreach (glob(root_path() . 'app/' . '*', GLOB_ONLYDIR) as $path) {
foreach (glob($path . '/route/' . '*') as $file) {
if (is_file($file)) {
include $file;
}
}
}
// 其他路由配置...
本文为Pasa吴原创文章,转载无需和我联系,但请注明来自Pasa吴博客https://www.pasawu.top
最新评论