簡體   English   中英

route.php中的Laravel 5.2 Web中間件組不見了

[英]Laravel 5.2 web middleware group in routes.php is gone

我最近開始了一個新的laravel項目,並意識到route.php中的Web中間件組已經消失了。

雖然它似乎仍然使用它-因此我想問一下它的配置位置,因為它沒有在Kernel.php中作為默認中間件列出。

protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \GeneaLabs\LaravelCaffeine\Http\Middleware\LaravelCaffeineDripMiddleware::class,
];

實際上,我問,因為我想創建一個additinal API來我的應用程序,所以我想使用網絡中間件。

我實際上找到了答案。 此行為的根源在Map函數應用中間件的RouteServiceProvider中。

/**
 * Define the routes for the application.
 *
 * @param  \Illuminate\Routing\Router  $router
 * @return void
 */
public function map(Router $router)
{
    $this->mapWebRoutes($router);

    //
}

/**
 * Define the "web" routes for the application.
 *
 * These routes all receive session state, CSRF protection, etc.
 *
 * @param  \Illuminate\Routing\Router  $router
 * @return void
 */
protected function mapWebRoutes(Router $router)
{
    $router->group([
        'namespace' => $this->namespace, 'middleware' => 'web',
    ], function ($router) {
        require app_path('Http/routes.php');
    });
}

你在看哪里? 在默認的Kernel.php它們仍然存在:

    /**
 * The application's global HTTP middleware stack.
 *
 * These middleware are run during every request to your application.
 *
 * @var array
 */
protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
];

/**
 * The application's route middleware groups.
 *
 * @var array
 */
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,
    ],

    'api' => [
        'throttle:60,1',
    ],
];

然后在您的routes甚至沒有默認web ,然后將其放置。

Route::group(['middleware' => ['web']],function(){
      //your routes ...
});

或者,如果您不想在api端點中使用會話:

Route::group(['middleware' => ['api']],function(){
      //your routes ...
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM