Как получить связь с сводной таблицей? - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть таблицы:

категории - это категории транспортных средств

enter image description here

dicts_groups - у меня там много вещей

enter image description here

диктов - для моих групп диктов я вижу, что это (ие) телосложения

enter image description here

category_dict_group - сводная таблица

enter image description here

Класс моей категории

public function bodyTypes()
    {
        return $this->belongsToMany('App\DictGroup');
    }

это мой класс dictGroup

public function dicts() {
        return $this->belongsTo('App\Dict');
   }

Я хочу получить все части тела для категории = 1, поэтому мой код прост:

dd(Category::find(1)->bodyTypes()->pluck('id'));

результат равен

Collection {#248 ▼
  #items: array:1 [▼
    0 => 7
  ]
}

, что нормально, причина 7мой dict_group_id из сводной таблицы, я думаю.Как я могу получить список типов телосложения от dict?как то, что мне нужно добавить в функцию bodyTypes, чтобы получить список, как из таблицы DICTS (id, symbol, public_name)

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете использовать with() для загрузки отношений:

dd(Category::with('bodyTypes', 'bodyTypes.dicts')->find(1)->bodyTypes);

Это должно вернуть вам все bodyTypes с загруженным отношением dicts.

Следующее должнодать вам коллекцию всех диктов:

$c = Category::with('bodyTypes', 'bodyTypes.dicts')->find(1);
dd($c->bodyTypes->pluck('dicts'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...