Laravel:如何限制用户访问路由/页面的时间?

时间:2016-08-16 17:07:20

标签: laravel

实施例: 如果用户点击'个人资料' 按钮(重定向到 /个人资料 路线),那么网络基本上会查询像这样(' select * from profile where id = 1 )。 就我的老板而言,他不希望数据库充斥着查询请求。他想要一个20秒的时间限制,所以如果用户再次点击(或刷新)时间不到20秒,那么会显示一条提示信息"检查你的个人资料,请等待"而不是说"嘿,你正在超载数据库,请在30秒后回来"。

他说这样做的目的是保护数据库不受多个查询请求的影响。

个人资料只是一个例子。

1 个答案:

答案 0 :(得分:1)

简单的解决方案是使用节流中间件
在控制器中的__contruct方法中。添加这些代码行

// This mean: 3 hits per 1 minute
$this->middleware('throttle:3,1');