Ricerca…
Sintassi
- mappa delle funzioni pubbliche (router $ router) // Definire i percorsi per l'applicazione.
- funzione protetta mapWebRoutes (router $ router) // Definire i percorsi "web" per l'applicazione.
Parametri
Parametro | Intestazione |
---|---|
Router $ router | \ Illuminate \ Routing \ Router $ router |
Osservazioni
Middleware significa che ogni chiamata a un percorso passerà attraverso il middleware prima di colpire effettivamente il codice specifico del percorso. In Laravel il middleware web viene utilizzato per garantire la gestione delle sessioni o il controllo del token csrf, ad esempio.
Di default ci sono altri media come auth o api. Puoi anche creare facilmente il tuo middleware.
Aggiunta di api-rotte con altri middleware e mantiene il middleware Web predefinito
Dal momento che Laravel versione 5.2.31 il middleware web è applicato di default all'interno del RouteServiceProvider ( https://github.com/laravel/laravel/commit/5c30c98db96459b4cc878d085490e4677b0b67ed)
In app / Provider / RouteServiceProvider.php troverai le seguenti funzioni che applicano il middleware su ogni percorso all'interno della tua 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');
});
}
Come puoi vedere il web del middleware è applicato. Puoi cambiarlo qui. Tuttavia, puoi anche aggiungere facilmente un'altra voce per poter inserire i tuoi percorsi API per esempio in un altro file (ad esempio 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');
});
}
Con questo puoi facilmente separare i percorsi API dai percorsi delle applicazioni senza il wrapper di gruppo disordinato all'interno del tuo route.php