У меня есть следующие таблицы базы данных:
tour
idtour
other_columns
day
idday
other_columns
tour_has_day
idtour
idday
В каждом туре много дней, и эти дни можно использовать в других турах.
Итак, в модели Tour.php я добавляю эту функцию:
function days () {
return $this->hasManyThrough('App\Day', 'App\Tour_has_day', 'idtour', 'idday');
}
Это дает мне правильное количество связанных дней, но все строки имеют одинаковое содержание.
Я отлаживаю запрос, который он возвращает:
select
`day`.*,
`tour_has_day`.`idtour`
from `day`
inner join
`tour_has_day` on `tour_has_day`.`idtour` = `day`.`idday`
where
`tour_has_day`.`idtour` = '1'
И он возвращается