Laravel 5 hasManyThrough 重复行内容

Laravel 5 hasManyThrough repeating row content

我有以下数据库表:

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');
}

它给了我正确的相关天数,但所有行的内容都相同

我调试它 returns:

的查询
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'

它returns

您需要一个 many-to-many 关系与一个枢轴 table 就像您为此所拥有的那样。 has-many-through 关系适用于当你有一个 parent 和一个 child 时,child 是另一个 child 的 parent。