La colonne tutorielle suivante de laravel vous présentera les fonctions des trois middlewares de Laravel. J'espère qu'elle sera utile aux amis dans le besoin !
Avant, je pensais simplement que le middleware ne faisait qu'ajouter un middleware au middleware. Maintenant je sais qu'il existe trois types de middleware, à savoir : $middleware $middlewareGroup $routeMiddleware Après avoir consulté les informations, j'ai enfin compris les fonctions et les différences de ces trois types.
Le premier type, Middleware global/$middleware :
Chaque demande que nous faisons, ici Chaque middleware sera exécuté.
Le deuxième type, Route middleware/$routeMiddleware :
Le middleware défini dans cet attribut, ne peut être référencé lors de la définition des itinéraires.
Supposons qu'il s'agisse du middleware de routage que nous avons défini :
protected $routeMiddleware = [ ... 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, ];
Si nous voulons utiliser IlluminateAuthMiddlewareAuthenticate::class, ce middleware doit être écrit comme ceci :
Route::get('hello/laravel-china','XXController@index')->middleware('auth');
Lors de la définition d'une route, appelez la méthode middleware et la valeur du paramètre est auth. De cette façon, lors de l'accès à la route, le middleware sera exécuté.
Le troisième type, Middleware Groups/$middlewareGroups :
Regardez le middleware de routage ci-dessus, on sent qu'ajouter un middleware de routage de cette manière est très gênant. Si l'on veut exécuter 100 middleware, il faut en ajouter 100 lors de la définition de la route. Mais avec le groupe middleware, vous n’avez pas besoin d’être si gênant ! Jetons un coup d'œil à la manière dont le groupe middleware est défini.
protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, ... ], 'api' => [ ... ], ];
L'exemple ci-dessus consiste à définir le format du groupe de middlewares. Par exemple, la valeur clé web correspond à un tableau composé de plusieurs middlewares.
Lorsque vous devez déclarer un itinéraire, appelez-le simplement comme suit.
Route::group(['middleware' => 'web'],function($route){ $route->get('hello/world',function(){}); $route->get('hello/php',function(){}); // 这样在访问这个这些路由的时候,就会执行中间件组 web 所对应的中间件! });
** Résumé :
$middleware/middleware global, lorsque vous devez effectuer un traitement pour toutes les requêtes, il convient de le définir ici au sein de la propriété. (Par exemple, compter le nombre de requêtes)
$middlewareGroups/middleware groups Par exemple, lorsque notre projet a des requêtes API et des requêtes Web, nous devons séparer les deux types de middleware de requêtes. Nous avons besoin de notre groupe middleware.
$routeMiddleware/routing middleware Lorsque nous devons exécuter un middleware spécial pour certaines requêtes individuelles, il convient de le définir dans cet attribut. **
Recommandations associées : Les cinq derniers didacticiels vidéo Laravel
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!