Laravel如何添加路由模塊


需求

添加open模塊,路由規則和控制器能獨立存放,最終可以通過/open/xxx訪問到Open/xxxController.php的控制器的方法

步驟

1.創建路由文件

routes文件夾創建open.php文件

代碼如下

<?php
/**
 * open.php 2020年03月17日 3:40 下午
 * @author chenqionghe
 */

Route::group(['middleware' => []], function () {
    
});

2.注冊路由文件

將創建的open文件注冊到App/Http/Providers/RouteServiceProvider.php,代碼如下

    public function map()
    {
        Route::prefix('open')//路由前綴
        ->middleware('open')//路由組
        ->namespace("{$this->namespace}\\Open")//命名空間
        ->group(base_path('routes/open.php'));//路由文件路徑
        //...其他路由代碼忽略
    }

解釋

  • middleware('open'):代表有一個路由組叫open
  • namespace("{$this->namespace}\Open'"):指定命名空間
  • group(base_path('routes/open.php')):指定路由文件

3.創建中間件文件

例如需要驗證路由模塊的中間件,這里名字我叫OpenAuth

 php artisan make:middleware OpenAuth

生成代碼如下

4.注冊中間件組

將創建的中間件OpenAuth添加到middlewareGroups,組名為上面寫的open

    protected $middlewareGroups = [
        //默認代碼省略
        'open' => [
            \App\Http\Middleware\OpenAuth::class
        ],
    ];

5.創建控制器

執行命令

php artisan make:controller Open/IndexController --resource

會在Controllers下創建Open文件夾和IndexController.php文件
我們修改下,返回hello world

6.自定義路由規則

將生成的控制器注冊到路由規則
如下

<?php
/**
 * open.php 2020年03月17日 3:40 下午
 * @author chenqionghe
 */

Route::group(['middleware' => []], function () {
    Route::get('/test', 'IndexController@index');
});

測試

訪問測試

訪問/open/test,如下,訪問已經成功

中間件測試

修改OpenAuth,檢測必須傳遞一個sign=1234的參數才能通過

再次請求


可以看到,中間件也已經生效


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM