首頁  >  文章  >  後端開發  >  如何解決Laravel的throttle中間件失效的問題

如何解決Laravel的throttle中間件失效的問題

不言
不言原創
2018-06-13 15:38:291865瀏覽

這篇文章主要介紹了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中文網!

相關推薦:

如何解決PHP mkdir()無寫權限的問題

以上是如何解決Laravel的throttle中間件失效的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn