【发布时间】:2016-01-20 12:06:21
【问题描述】:
当我想在 Laravel 中压缩两个关系时,我遇到了一些问题。 有 3 个带模型的表。
table1: episodes --> model: Episode
relations -- hasMany --> posts
-- belongsToMany --> users
pivot-table2: posts --> model: Post
columns -- episode_id
-- user_id
relations -- belongsTo --> user
-- belongsTo --> episode
table3: users --> model: User
是的,这是一个多对多的关系。我们可以在 Episode 模型上获取帖子或用户关系。
如果我有一个模型集合
$episode = new App\Episode
它怎么会像这样急切地加载
$episodes = new App\Episode::with('posts.user').
也许我可以像下面那样做
$episode = new App\Episode::with('posts.user')->where('id','=','targetId')
但似乎会先连接三个表,然后进行查询以获取目标剧集。
有什么方法可以像
$episode = new App\Episode::find(targetId)-> with('posts.user')
【问题讨论】:
-
Posts 表中应该有 user_id 列。
-
@Ehs4n 抱歉,这是我的错误。