所以, anorder
有一个 foreign_key offer_id
。
并且 anoffer
有一个 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);
}