【发布时间】:2019-07-09 03:04:06
【问题描述】:
所以,order 有一个 foreign_key offer_id。
而offer 有一个foreign_key item_id。
一件商品可能有多个报价。但是每个报价都有一个项目。
一个报价可能有多个订单。但是每个订单都有一个报价。
当我这样做时:
$orders = Auth::user()->orders()
->with('offer')
->get();
我明白了:
id: 3,
user_id: 1,
offer_id: 5,
created_at: "2019-02-15 00:40:31",
updated_at: "2019-02-15 00:40:31",
offer: {
id: 5,
item_id: 3,
created_at: "2019-02-15 00:39:40",
updated_at: "2019-02-15 00:39:40"
}
如您所见,我可以通过item_id: 3 获得此优惠
但我想得到整个项目;它的所有列,而不仅仅是 id。
通常,您会加入这两个表。 如何用 Eloquent 做到这一点?
这是我雄辩的人际关系:
订购
public function offer()
{
return $this->belongsTo(Offer::class);
}
优惠
public function orders()
{
return $this->hasMany(Order::class);
}
public function item()
{
return $this->hasOne(Item::class);
}
物品
public function offers()
{
return $this->belongsToMany(Offer::class);
}
【问题讨论】:
标签: laravel eloquent eager-loading laravel-5.7 eloquent-relationship