首頁  >  文章  >  php教程  >  Laravel的throttle中間件失效問題解決方法

Laravel的throttle中間件失效問題解決方法

高洛峰
高洛峰原創
2016-12-27 11:46:351729瀏覽

本文實例講述了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中間件也起作用了。

更多Laravel的throttle中間件失效問題解決方法相關文章請關注PHP中文網!

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