Php Laravel雄辩的嵌套关系,从两个层次上进行约束

Php Laravel雄辩的嵌套关系,从两个层次上进行约束,php,laravel,eloquent,Php,Laravel,Eloquent,**更新帖子:我认为这实际上不可能使用雄辩,所以我采取了不同的方法,谢谢** 考虑以下简化表格: 内容 身份证件 名称 1. 新闻 2. 回顾 试试这个 Content::with('games')->with('releases')->with('content')->get()->toArray(); 是的,这个问题有点过时了,但我自己也在为此挣扎,一个合适的答案可能对其他人有用:) 设置数据库表和关系的方式存在一些问题,因此让我们先解决这些问题: 如果

**更新帖子:我认为这实际上不可能使用雄辩,所以我采取了不同的方法,谢谢**

考虑以下简化表格:

  • 内容
身份证件 名称 1. 新闻 2. 回顾 试试这个

Content::with('games')->with('releases')->with('content')->get()->toArray();    
是的,这个问题有点过时了,但我自己也在为此挣扎,一个合适的答案可能对其他人有用:)

设置数据库表和关系的方式存在一些问题,因此让我们先解决这些问题:

如果我理解正确,内容和游戏之间存在多对多关系,游戏和发布之间存在一对多关系。因此,您需要为内容和游戏之间的关系创建一个透视表,并在releases表上使用外键。这意味着重命名枢轴(为了清晰起见)并删除release_id列

完成后,我们必须更新模型关系。内容属于多个游戏,游戏属于多个内容,游戏有多个发布

现在只是使用的问题,从那时起可能已经添加到文档中,并且。。我们完了

Content::with(['games', 'games.releases'])->get()->toArray();

这不起作用,因为
发行版
内容
模型无关。很抱歉,我不确定您是否理解此问题。此解决方案(或任何使用chained same level with()方法的类似实现)将无法工作,因为关系是嵌套的,而不是扁平的。无论如何,谢谢。