【发布时间】:2019-07-27 20:53:08
【问题描述】:
在 Laravel 中,是否可以将关系放入关系中?
基本上,我已经建立了一个关系,但是我需要另一个关系来建立该关系(如果这有意义的话)。
我的两个模型:
- 商店
- 供应商
我的商店和供应商关系模型:
- 供应商商店
- store_id
- supplier_id
如您所见,我有许多 stores 和 suppliers,每个人都可以通过 SupplierStore 表相互关联。
这很好用。
我的问题是对于每个关系(商店和供应商)可以有 许多交货天数。
我的 HasMany 关系:
DeliveryDay
supplier_store_id
day
我想如果我进入 SupplierStore 模型并添加:
public function days()
{
return $this->hasMany('App\DeliveryDay');
}
可行,但我似乎无法通过 eloquent 访问这些数据?
我希望做这样的事情:
$supplier = 供应商::find($id); $supplier->store->pivot->days
枢轴(SupplierStore)将保存该特定关系的关系,我可以抓住日子。
谁能帮我弄清楚我需要做什么才能实现这一目标?非常感谢您的时间。谷歌搜索了几个小时后,我的头好痛。 :)
【问题讨论】:
-
SupplierStore 已经是模型了吗?
-
hasManyThrough? - laravel.com/docs/5.8/eloquent-relationships#has-many-through
-
是的,SupplierStore 是一个模型。它是用于供应商和商店之间的 BelongsToMany 关系的模型。该模型本身也具有 HasMany 与 DeliveryDays 的关系。
-
我遇到了同样的问题。我需要在数据透视模型中定义一个关系,以便更轻松地进行查询。你是怎么解决的?
标签: laravel eloquent pivot relationship