我目前正在建立一个网站,其中包含一个表格,用于计算用户使用优惠券的次数。
这是我用来增加的线。它运行良好,但每次刷新页面时都会增加。
\App\Coupon::where('coupon_id','=',$coupon[0]->coupon_id)->increment('no_paid');
我希望这个只增加一次,即使页面已刷新多次。请帮帮我:)。
答案 0 :(得分:1)
您可以使用会话。这是一个例子(使用Laravels全局会话助手):
if (!session()->has('coupon_used')) {
\App\Coupon::where('coupon_id','=',$coupon[0]->coupon_id)->increment('no_paid');
session()->put('coupon_used', true);
}
首先检查会话是否存在。如果没有,则运行代码并设置会话。第二次加载页面时,将设置会话并且代码将不会运行。
上述代码仅允许每个用户会话使用一张优惠券,无论他们是否尝试使用不同的优惠券ID。如果你想添加相同的功能,同时允许不同的优惠券(能够增加一次/优惠券ID),那么你可以这样做:
if (!session()->has('coupon_' . $coupon[0]->coupon_id)) {
\App\Coupon::where('coupon_id','=',$coupon[0]->coupon_id)->increment('no_paid');
session()->put('coupon_' . $coupon[0]->coupon_id, true);
}
这是相同的事情,但只为该优惠券ID设置会话(因为它动态创建会话名称以附加ID)。