Как получить данные отношения многие ко многим, используя сводную таблицу
У меня есть ниже модели:
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 ответ
Решение
Используйте эти отношения вместо ваших
public function coupons() {
return $this->belongsTo('App\Coupon','coupon_id');
}
public function campaigns() {
return $this->belongsTo('App\Campaign','campaign_id');
}