Szukaj…


Składnia

  • mapa funkcji publicznych (Router $ router) // Zdefiniuj trasy dla aplikacji.
  • chroniona funkcja mapWebRoutes (Router $ router) // Zdefiniuj trasy „sieciowe” dla aplikacji.

Parametry

Parametr nagłówek
Router $ router \ Illuminate \ Routing \ Router $ router

Uwagi

Oprogramowanie pośrednie oznacza, że każde wywołanie trasy przechodzi przez oprogramowanie pośrednie, zanim faktycznie trafi na kod związany z konkretną trasą. W Laravel oprogramowanie pośredniczące w sieci Web jest używane na przykład do obsługi sesji lub sprawdzania tokena csrf.

Domyślnie istnieją inne programy pośrednie, takie jak auth lub api. Możesz także łatwo stworzyć własne oprogramowanie pośrednie.

Dodanie tras api z innym oprogramowaniem pośrednim i zachowanie domyślnego oprogramowania pośredniego

Od wersji 5.2.31 Laravela internetowe oprogramowanie pośrednie jest domyślnie stosowane w RouteServiceProvider ( https://github.com/laravel/laravel/commit/5c30c98db96459b4cc878d085490e4677b0b67ed)

W app / Providers / RouteServiceProvider.php znajdziesz następujące funkcje, które stosują oprogramowanie pośrednie na każdej trasie w Twojej aplikacji / Http / route.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');
    });
}

Jak widać, zastosowano oprogramowanie pośredniczące . Możesz to zmienić tutaj. Możesz jednak łatwo dodać kolejny wpis, aby na przykład umieścić trasy interfejsu API w innym pliku (np. Trasy-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');
    });
}

Dzięki temu możesz łatwo oddzielić trasy API od tras aplikacji bez bałaganu opakowania grupy w twoich trasach.php



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow