Laravel ミドルウェアとルーティングについて
作成日:2024-03-06, 更新日:2024-03-07
「app/Http/Kernel.php」の中にある各設定
- $middleware は、グローバルミドルウェア。無条件にすべてのリクエストに対して適用
-
- $middlewareGroups[web]は、ルートミドルウェア。ルーティングのwebで設定されているリクエストに対して適用
- $middlewareGroups[api]は、ルートミドルウェア。ルーティングのapiで設定されているリクエストに対して適用
- $middlewareAliasesは、ルートミドルウェア。ルーティングで「Route::middleware('xxx')」内で設定されているリクエストに対して適用
ルーティングでミドルウェアを適用
対象URLに対してミドルウェアを設定
Route::get('/hoge', 'HogeController@index')->middleware('zebra');
複数のミドルウェアをセットしたい
middleware()の引数を配列にする
Route::get('/hoge', 'HogeController@index')->middleware(['zebra', 'xxx']);
複数の対象URLに対してミドルウェアを設定
Route::middleware('zebra')->group(function () { Route::get('/hoge', 'HogeController@index'); Route::get('/foo', 'FooController@index'); Route::get('/bar', 'BarController@index'); });
複数のミドルウェアをセットしたい
middleware()の引数を配列にする
Route::middleware(['zebra', 'xxx'])->group(function () { Route::get('/hoge', 'HogeController@index'); Route::get('/foo', 'FooController@index'); Route::get('/bar', 'BarController@index'); });
複数の対象URLに対してミドルウェアを設定し、その中で特定のURLに対して別のミドルウェアを設定
Route::middleware('zebra')->group(function () { Route::get('/hoge', 'HogeController@index'); Route::get('/foo', 'FooController@index')->middleware('whole'); Route::get('/bar', 'BarController@index'); });
複数の対象URLに対してミドルウェアを設定し、その中で複数のURLに対して別のミドルウェアを設定
Route::middleware('zebra')->group(function () { Route::get('/hoge', 'HogeController@index'); Route::middleware('whole')->group(function () { Route::get('/foo', 'FooController@index'); Route::get('/bar', 'BarController@index'); }); });