我遇到了一个问题,我需要在laravel中连接三个模型。
模型1:许可证
licences_table
id
name
模型2:学科
disciplines_table
id
name
模型3:级别
levels_table
id
name
weight
因此,许可证可以有许多学科,而且学科可以有多个级别。
但是,对于某些许可,具有学科的级别必须是唯一的。
我还创建了一个包含三个外键的数据透视表:
discipline_levels_table
level_id
discipline_id
licence_id
我使用belongsToMany定义了这三个模型之间的关系。
问题在于,当我尝试获得具有这样的学科和级别的所有许可证时:Licence::with(array("disciplines","disciplines.levels"))->get();
我得到的水平只与学科相关,而不是许可和学科。
我希望获得与每个学科和每个许可相关的所有级别。
如何实现这一目标?
我应该在模型之间定义不同的关系吗?
或者我应该构建不同的查询?