Laravel 5.4 路由问题

Laravel 5.4 在api.php 中注册路由不生效,在web.php 中注册可以。请教下谁遇到过这样的问题吗

阅读 6.9k
2 个回答

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

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

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

首先你可以看一下 app/Http/Kernel.php 这个文件,都就可以看出来api.php 和web.php的区别
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' => [
        'throttle:60,1',
        'bindings',
    ],
];

api.php 配合Laravel passport来使用提供 API 服务,所有路由在访问时都有一个/api的前缀,通常是做前后端完全分离时给前端ajax使用的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题