如果要使用多應用模式,你需要安裝多應用模式擴展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目錄添加路由文件
<?php use think\facade\Route; Route::get('test', 'Index/index');
現在再訪問admin應用Index.php控制器下面的方法,訪問路徑應該為:
http://localhost/public/admin.php/test http://域名/public/入口文件/路由表達式
原文鏈接:https://blog.csdn.net/xiuliyan6124/article/details/103065406