サーチ…
構文
- public function map(Router $ router)//アプリケーションのルートを定義します。
- protected function mapWebRoutes(Router $ router)//アプリケーションの "Web"ルートを定義します。
パラメーター
パラメータ | ヘッダ |
---|---|
ルータ$ルータ | \ Illuminate \ Routing \ Router $ router |
備考
ミドルウェアとは、あるルートへのすべてのコールが実際にルート固有のコードに当たる前にミドルウェアを経由することを意味します。 Laravelでは、Webミドルウェアがセッション処理やcsrfトークンチェックなどを保証するために使用されます。
デフォルトでauthやapiのような他のミドルウェアがあります。独自のミドルウェアを簡単に作成することもできます。
他のミドルウェアでapi-routesを追加し、デフォルトのWebミドルウェアを維持する
Laravelバージョン5.2.31以降、WebミドルウェアはRouteServiceProvider( https://github.com/laravel/laravel/commit/5c30c98db96459b4cc878d085490e4677b0b67ed)内でデフォルトで適用されます。
app / Providers / RouteServiceProvider.phpでは、app / Http / routes.php内のすべてのルートにミドルウェアを適用する次の関数があります
public function map(Router $router)
{
$this->mapWebRoutes($router);
}
// ...
protected function mapWebRoutes(Router $router)
{
$router->group([
'namespace' => $this->namespace, 'middleware' => 'web',
], function ($router) {
require app_path('Http/routes.php');
});
}
ご覧のとおり、 ミドルウェアの Webが適用されています。ここでこれを変更することができます。しかし、別のエントリを簡単に追加して、たとえばapiルートを別のファイルに入れることもできます(routes-api.phpなど)
public function map(Router $router)
{
$this->mapWebRoutes($router);
$this->mapApiRoutes($router);
}
protected function mapWebRoutes(Router $router)
{
$router->group([
'namespace' => $this->namespace, 'middleware' => 'web',
], function ($router) {
require app_path('Http/routes.php');
});
}
protected function mapApiRoutes(Router $router)
{
$router->group([
'namespace' => $this->namespace, 'middleware' => 'api',
], function ($router) {
require app_path('Http/routes-api.php');
});
}
これにより、routes.php内の乱雑なグループラッパーなしでアプリケーションルートからapiルートを簡単に分離できます
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow