2016-07-20 5 views
0

最近laravelプロジェクトを開始し、routes.phpのWebミドルウェアグループがなくなったことを知りました。Laravel 5.2 routes.phpのWebミドルウェアグループがなくなった

まだかかわらず、それを使用しているようだ - それはKernel.phpに表示されていないので、私ので、私は実際に聞いてるのよ

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

デフォルトのミドルウェアとして、私はそれが設定されている場所をお願いしたいと思いtherforeを私のアプリにadditinal APIを作成したいので、私は ではなく、はWebミドルウェアを使用します。

答えて

0

お探しですか?デフォルト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 ... 
}); 
+0

これは確認できません。私はroutes.phpにルート::グループミドルウェアを持っていませんが、トークンを追加するとTokenMismatchExceptionが表示されます。したがって、Webミドルウェアは実際には接続されていないようです。 –

+0

Ofcourse私のカーネルで定義されたWebミドルウェアがあります。 - それは問題ではありませんが、すべてのリクエストと呼ばれるデフォルトのミドルウェアには定義されていません - なぜそれがまだ使用されているのだろうか? –

+0

デフォルトでroutes.phpにルートグループはありません。なぜミドルウェアを追加する必要があるのですか?あなたの好みに。セッションなどが必要ない場合は、単にミドルウェアの「api」値とあなたの良い値を追加してください! – jsd

0

私は実際に答え私の自己を発見しました。この動作の根本は、RouteServiceProviderにあります。ここで、map関数はミドルウェアを適用します。

/** 
* 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'); 
    }); 
} 
+0

これは私に数時間前から頭痛を与えました。私は本当にこの決定が嫌いです。 – vfsoraki

+0

私は実際にはララキャストで提示されたことを覚えていますが、どこを覚えていないのか:) - routes.phpをクリーンアップしてroute-api.phpのようなものを作成してからmapWebRoutes。 APIルートを1つのファイルにアプリルートと混在させる必要はありません –

関連する問題