Как получить данные об отношениях "многие ко многим" с помощью сводной таблицы

У меня есть модели ниже:

1. Campaign
2. Coupon
3. CampaignCoupon

CampaignCoupon - это модель сводной таблицы для отношений многие ко многим Campaign и Coupon.

У меня есть отношения ниже в модели 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_id и campaign_id, теперь я хочу получить данные Coupon и Campaign, используя модель CampaignCoupon.

Вот запрос, который я использовал:

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

Но он возвращает нулевой массив купонов и кампании.

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

Кто-нибудь может помочь?


person Palak Jadav    schedule 02.02.2019    source источник


Ответы (1)


Используйте эти отношения вместо своих

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