Laravel 拉威尔以关系为轴心的关系(雄辩)

Laravel 拉威尔以关系为轴心的关系(雄辩),laravel,eloquent,pivot,relationship,Laravel,Eloquent,Pivot,Relationship,在拉威尔,有没有可能把一段关系放在一段关系中 基本上,我已经建立了一段关系,但我需要另一段关系(如果这有意义的话) 我的两个模型: 贮藏 供应商 我的门店和供应商关系模型: 供应商商店 商店标识 供应商id 如您所见,我有许多门店和供应商,每个供应商都可以通过供应商门店表相互关联 这很好用 我的问题是对于每个关系(商店和供应商)都可能存在 许多交货日 我有很多关系: DeliveryDay supplier_store_id day 我想如果我进入供应商商店模型并添加: public

在拉威尔,有没有可能把一段关系放在一段关系中

基本上,我已经建立了一段关系,但我需要另一段关系(如果这有意义的话)

我的两个模型:

  • 贮藏
  • 供应商
我的门店和供应商关系模型:

  • 供应商商店
  • 商店标识
  • 供应商id
如您所见,我有许多门店供应商,每个供应商都可以通过供应商门店表相互关联

这很好用

我的问题是对于每个关系(商店和供应商)都可能存在 许多交货日

我有很多关系:

DeliveryDay
supplier_store_id
day
我想如果我进入供应商商店模型并添加:

public function days()
{
 return $this->hasMany('App\DeliveryDay');
}
会有用,但我似乎无法通过雄辩的方式获取这些数据

我希望做这样的事情:

public function getDays($id)
{
 $supplier = Supllier::find($id);

 foreach($supplier->stores() as $store)
 {
   foreach($store->days() as $day)
   {
    echo $day->day;
   }
 }
}
$supplier=供应商::查找($id); $supplier->store->pivot->days

pivot(SupplierStore)将保存该特定关系的关系,我可以抓紧时间


有人能帮我弄清楚我需要做什么来实现这一点吗?非常感谢您抽出时间。在谷歌上搜索了几个小时后,我的头疼得厉害

您可以这样访问每一天:

public function getDays($id)
{
 $supplier = Supllier::find($id);

 foreach($supplier->stores() as $store)
 {
   foreach($store->days() as $day)
   {
    echo $day->day;
   }
 }
}
或者整天都在

$supplier->stores->days;

供应商商店已经是模型了吗?hasManyThrough?-可能是复制品是的,SupplierStore是一个模型。这是用于供应商和商店之间归属关系的模型。这个模型本身也有一个HasMany for DeliveryDays的关系。我也有同样的问题。我需要在pivot模型中定义一个关系,以便于查询。你是怎么解决的?卢卡斯,谢谢你的帮助。但我认为你的建议不是解决办法。我想要访问关系中的关系的内容。例如:$supplier->store->pivot->daysh我的错,那么你想使用你的供应商模型度过这些日子吗?是的,伙计,这似乎是不可能的。真糟糕!如果我添加($supplier->stores->pivot)-有一个关系行,但它是一个空白数组,它没有我添加到关系中的days()关系。真的很奇怪。
$supplier->stores
您能添加这个,看看是否返回您的SupplierModel吗?如果有,你可以使用foreach循环访问这些天,如果我这样做的话$供应商->门店->第一(),它将显示第一个关系。然后我可以执行$supplier->stores->first()->pivot,这将显示实际的关系模型。在“pivot”中,我看不到天数,即使我尝试foreach说$supplier->stores->pivot->days,它认为这是我的SupplierStore模型上的一个列,而不是关系。如果我做$supplier->stores->pivot->days(),它只会说函数不存在。