如果要使用多应用模式,你需要安装多应用模式扩展think-multi-app。
composer require topthink/think-multi-app
1
多应用目录结构如下:
├─app 应用目录│ ├─index 主应用│ │ ├─controller 控制器目录│ │ ├─model 模型目录│ │ ├─view 视图目录│ │ ├─config 配置目录│ │ ├─route 路由目录│ │ └─ ... 更多类库目录│ │ │ ├─admin 后台应用│ │ ├─controller 控制器目录│ │ │ ├─Index.php 控制器类│ │ ├─model 模型目录│ │ ├─view 视图目录│ │ ├─config 配置目录│ │ ├─route 路由目录│ │ │ ├─route.php 路由定义文件│ │ └─ ... 更多类库目录│├─public WEB目录(对外访问目录)│ ├─admin.php 后台入口文件│ ├─index.php 入口文件│ ├─router.php 快速测试文件│ └─.htaccess 用于apache的重写│├─config 全局应用配置目录├─route 路由定义目录
当为多应用时,路由文件变到了对应应用下的route目录了,这个时候如果需要访问admin应用Index.php控制器下面的方法,访问路径应该为:
http://localhost/public/index.php/admin/Index/index
http://域名/public/入口文件/应用目录/控制器类/方法
可以通过新增入口文件,并指定应用目录,可以隐藏URL中应用目录,在public下新增admin.php文件,文件内容如下:
<?php// [ 应用入口文件 ]namespace think;require __DIR__ . ‘/../vendor/autoload.php‘;// 执行HTTP应用并响应$http = (new App())->http;// 指定应用目录为admin$response = $http->name(‘admin‘)->run();$response->send();$http->end($response);
现在再访问admin应用Index.php控制器下面的方法,访问路径应该为:
http://localhost/public/admin.php/Index/index
http://域名/public/入口文件/控制器类/方法
1
2
再在admin应用目录下的route目录添加路由文件
<?phpuse think\facade\Route;Route::get(‘test‘, ‘Index/index‘);
现在再访问admin应用Index.php控制器下面的方法,访问路径应该为:
http://localhost/public/admin.php/testhttp://域名/public/入口文件/路由表达式
原文链接:https://blog.csdn.net/xiuliyan6124/article/details/103065406