本文最后更新于 2024-05-20,文章内容可能已经过时,请注意发布时间。

创建路由文件

routes 中创建你要的文件(我拿app,php)来举例子

<?php

use Illuminate\Support\Facades\Route;


Route::get('/test', function () {
    return '这里是app';
});

添加Route服务

app/Providers/RouteServiceProvider.phpboot方法中添加


Route::middleware('app')
    ->prefix('app')
    ->group(base_path('routes/app.php'));

完整代码


public function boot(): void
{
    RateLimiter::for('api', function (Request $request) {
        return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
    });

    $this->routes(function () {
        Route::middleware('api')
            ->prefix('api')
            ->group(base_path('routes/api.php'));

        Route::middleware('web')
            ->group(base_path('routes/web.php'));

        Route::middleware('app')
            ->prefix('app')
            ->group(base_path('routes/app.php'));
    });
}

注册中间件

在刚刚的操作中我们指定了要调用app前缀的中间件,所以我们要到 app/Http/Kernel.php 中来添加


'app' => [
    // 这里写你的中间件
],

完整代码

ray<int, class-string|string>>
 */
protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],

    'api' => [
        // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
        \Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],

    'app' => [
        // 这里写你的中间件
    ],
];

这个时候就可以访问 127.0.0.1:你的端口号/app/test 来看下效果

这样就可以新增一个路由文件了。