有谁能告诉我这段代码缺少什么?
我希望它能够增加阵列上的所有优惠券,但它只增加第一个优惠券
这是控制器
public function paidCount($user_id) {
$meta = \App\EventBookingsMeta::where('user_id', '=', $user_id)->where('meta_key', 'LIKE', 'used_coupons')->value('meta_value');
if ( $meta ) {
$decode = json_decode( $meta );
if ( count( $decode ) > 0 ) {
foreach( $decode as $coupon) {
return \App\Coupon::find($coupon)->increment('no_paid');
}
}
}
}
这就是我的"元表"看起来像
user_id meta_key meta_value
1 used_coupons [3,5,9]
2 used_coupons [7, 8]
这是"优惠券表"
coupon_id no_paid
3 1
5 0
7 1
8 0
9 0
只增加了3和7
答案 0 :(得分:3)
从return
循环中删除foreach
语句。在第一次迭代时,调用返回将突破paidCount
。
请注意以下示例中的已删除回复。
public function paidCount($user_id) {
$meta = \App\EventBookingsMeta::where('user_id', '=', $user_id)->where('meta_key', 'LIKE', 'used_coupons')->value('meta_value');
if ( $meta ) {
$decode = json_decode( $meta );
if ( count( $decode ) > 0 ) {
foreach( $decode as $coupon) {
\App\Coupon::find($coupon)->increment('no_paid');
}
}
}
}