Laravel 5 hasManyThrough 重复行内容
Posted
技术标签:
【中文标题】Laravel 5 hasManyThrough 重复行内容【英文标题】:Laravel 5 hasManyThrough repeating row content 【发布时间】:2015-09-12 16:57:55 【问题描述】:我有以下数据库表:
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'
然后它返回
【问题讨论】:
这看起来像一个数据透视表,多对多关系对它有用,而不是多对多关系。 @JoelHinz 将其发布为答案,我检查它是否成功。谢谢 很高兴,谢谢。我很高兴它有所帮助。 【参考方案1】:您需要一个与数据透视表类似的多对多关系。 has-many-through 关系适用于当您有父母和孩子,而孩子是另一个孩子的父母时。
【讨论】:
以上是关于Laravel 5 hasManyThrough 重复行内容的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 关系:hasManyThrough、belongsTo、belongsToMany
通过 Laravel 关系查询 HasManyThrough 检索相关记录