laravel - 当条件限制为 2 时执行代码 3 次
问题描述
我有桌子Coupon
和Coupon_usages
.
$userTimesRedeemed = CouponUsage::where('coupon_id', $coupon->id)->where('user_id', $user_id)->get();
if ($coupon->usage_limit_per_user<$userTimesRedeemed->count()) {
return response()->json([
'is_valid' => false,
'message' => 'Coupon has already been used max number of times.'
], 422);
}
最初Coupon_usages
表是空的,所以添加时:
$coupon->usage_limit_per_user = 2;
并运行它将执行 3 次的代码。
如何避免这个错误?
注意:最初Coupon_usages
表格是空的。
解决方案
$userTimesRedeemed = CouponUsage::where('coupon_id', $coupon->id)->where('user_id', $user_id)->get();
if ($coupon->usage_limit_per_user <= $userTimesRedeemed->count()) {
return response()->json([
'is_valid' => false,
'message' => 'Coupon has already been used max number of times.'
], 422);
}
添加<=
您的条件,因为如果您的计数为 2 并且限制为 2,那么
if($coupon->usage_limit_per_user<$userTimesRedeemed->count()) // it will return false
因为 2 不小于 2 你应该检查小于或等于 2
推荐阅读
- python-3.x - 如何使用 print() 在变量前面添加字符
- typescript - 如何使用 JSDoc 为递归闭包编写显式返回类型注释
- spring - 为什么在 Spring MVC 中发送 json 请求并使用 json 时出现 415 错误?
- vue.js - Vue 为突变初始化数据的道具,但数据()中的错误:“TypeError:无法读取未定义的属性'propsTitle'”
- azure - 在 ARM 模板中使用 dependsOn 属性
- android - NativeScript TextView:textTransform 无法更新
- sql - 如何让 SQL Pivot 显示多于一行
- android - 无法从服务生成的广播接收器获取数据?
- javascript - 如何在 React.JS 中将状态从子组件传递给父组件?
- javascript - fromcharcode 的正则表达式示例