這篇文章主要介紹了Laravel的throttle中間件失效問題解決方法,簡單分析了throttle中間件失效問題的原因並提出了解決方案,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了Laravel的throttle中間件失效問題解決方法。分享給大家供大家參考,具體如下:
按官方解釋,實現訪問頻率限制非常簡單:
Route::get('test', function(){ return 'helle world' ; })->middleware('throttle');
也確實如此, cache儲存存取次數,做出判斷。
之前使用了zizaco/entrust(一個基於角色的權限管理套件),其中把 .env 中的CACHE_DRIVER=file 改為了 CACHE_DRIVER=array。所以問題出現了。 Laravel支援多種cache驅動,File, Array, Db, Redis等,但是throttle 好像使用File類型的驅動程式才有效。
我的修改如下:
vendor/illuminate/cache/RateLimiter.php 檔案
public function __construct(Cache $cache) { $this->cache = $cache; } public function __construct() { $this->cache = app('cache')->driver('file'); }
把上面的改為下面的就可以了。 throttle中間件也起作用了。
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
以上是如何解決Laravel的throttle中間件失效的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!