Как получить данные отношения многие ко многим, используя сводную таблицу - PullRequest
0 голосов
/ 02 февраля 2019

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

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":[]}  

Может ли кто-нибудь помочь?

1 Ответ

0 голосов
/ 04 февраля 2019

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

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