如何使用pivot获取多对多关系数据table

How to get many-to-many relationship data using pivot table

我有以下型号:

1. Campaign
2. Coupon
3. CampaignCoupon

CampaignCoupon 是 table 的模型,用于 CampaignCoupon.

的多对多关系

我在 CampaignCoupon 模型中有以下关系:

public function coupons() {
    return $this->belongsToMany('App\Coupon', 'campaign_coupon','campaign_id','coupon_id');         
}

public function campaigns() {
    return $this->belongsToMany('App\Campaign', 'campaign_coupon','campaign_id','coupon_id');
}

在请求中我得到 coupon_idcampaign_id 现在我想使用 CampaignCoupon 模型得到 CouponCampaign 数据。

这是我使用过的查询:

$CampaignCoupon = CampaignCoupon::where('campaign_id', $input['campaign_id'])
    ->where('coupon_id', $input['coupon_id'])
    ->with(['coupons', 'campaigns']) 
    ->first();

但是它 returns 优惠券和活动数组为空。

{"id":95,"campaign_id":21,"coupon_id":25,"max_usage":21,"coupons":[],"campaigns":[]}  

有人能帮忙吗?

用这个关系代替你的

public function coupons() {
     return $this->belongsTo('App\Coupon','coupon_id');   
           } 
public function campaigns() {
     return $this->belongsTo('App\Campaign','campaign_id');   
           }