Laravel api.php 内定义的路由会自动加上 /api

2020-05-13  本文已影响0人  PHP的点滴

现象

在 routes/api.php 中配置

Route::any('test', function (){
    return 'test';
});

访问 http://xxx.com/test 路由无效

原因分析

主要是因为定义在 \App\Providers\RouteServiceProvider

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

给 api.php 的路由都上了 /api 前缀。
而 middleware 是定义在 \App\Http\Kernel 中的 $middlewareGroups

    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            //\App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'api' => [
            'bindings',
        ],
    ];
上一篇 下一篇

猜你喜欢

热点阅读