L'exemple de cet article décrit comment résoudre le problème de défaillance du middleware d'accélérateur de Laravel. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Selon l'explication officielle, il est très simple de mettre en œuvre une limite de fréquence d'accès :
Route::get('test', function(){ return 'helle world' ; })->middleware('throttle');
C'est également vrai. De cette manière, le cache stocke le nombre d'accès et porte un jugement.
J'ai déjà utilisé zizaco/entrust (un package de gestion des autorisations basé sur les rôles), dans lequel j'ai changé CACHE_DRIVER=file in .env en CACHE_DRIVER=array. Le problème se pose donc. Laravel prend en charge plusieurs pilotes de cache, notamment File, Array, Db, Redis, etc., mais la limitation semble être efficace uniquement lors de l'utilisation de pilotes de type File.
Mes modifications sont les suivantes :
fichier vendor/illuminate/cache/RateLimiter.php
public function __construct(Cache $cache) { $this->cache = $cache; } public function __construct() { $this->cache = app('cache')->driver('file'); }
Put ce qui précède, remplacez-le simplement par ce qui suit. Le middleware d’accélérateur fonctionne également.
Pour plus d'articles sur les solutions au problème de défaillance du middleware d'accélérateur de Laravel, veuillez prêter attention au site Web PHP chinois !