代码只能看到数组

时间:2016-11-09 13:50:12

标签: php laravel

有谁能告诉我这段代码缺少什么?

我希望它能够增加阵列上的所有优惠券,但它只增加第一个优惠券

这是控制器

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

1 个答案:

答案 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');
            }
        }
    }
  }