0

I have below models:

1. Campaign
2. Coupon
3. CampaignCoupon

CampaignCoupon is model of pivot table for many to many relationship of Campaign and Coupon.

I have below relationship in CampaignCoupon model:

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

In request I get coupon_id and campaign_id now i want to get Coupon and Campaign data using CampaignCoupon model.

Here is query I have used:

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

But it returns null array of coupons and campaign.

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

Can any one help?

Don't Panic
  • 13,965
  • 5
  • 32
  • 51
Palak Jadav
  • 1,202
  • 1
  • 11
  • 23

1 Answers1

0

Use this relationship instead of yours

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