Laravel Pivot Отношения на отношения (Eloquent) - PullRequest
1 голос
/ 06 марта 2019

В Laravel, возможно ли поместить отношения в отношения?

В принципе, у меня уже установлены отношения, но мне тогда нужны другие отношения для этих отношений (если это имеет смысл).

Мои две модели:

  • Магазин
  • Поставщик

Моя модель отношений для Магазина и Поставщика:

  • SupplierStore
  • store_id
  • supplier_id

Как видите, у меня есть много магазинов и поставщиков ,каждый из которых может относиться друг к другу через таблицу SupplierStore .

Это прекрасно работает.

Моя проблема в , что для каждого отношения (изМагазин и поставщик) может быть много дней доставки.

Мои отношения с HasMany:

DeliveryDay
supplier_store_id
day

Я подумал, что если я пойду в модель SupplierStore и добавлю:

public function days()
{
 return $this->hasMany('App\DeliveryDay');
}

Будет работать, но я никак не могу получить доступ к этим данным через eloquent?

Я надеялся сделать что-то вроде этого:

$ supplier = Supplier :: find ($ id);$ supplier-> store-> pivot-> days

Pivot (SupplierStore) будет содержать отношения этого конкретного отношения, и я смогу захватить дни.

Может кто-нибудь помочь мне понять, что мне нужно сделать, чтобы добиться этого?Ваше время очень ценится.После долгих поисков у меня сильно болит голова.:)

1 Ответ

0 голосов
/ 06 марта 2019

Вы можете получить доступ к каждому дню, например так:

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

 foreach($supplier->stores() as $store)
 {
   foreach($store->days() as $day)
   {
    echo $day->day;
   }
 }
}

Или получить все дни

$supplier->stores->days;
...