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