Laravel三向枢轴约束

时间:2015-05-06 21:05:50

标签: php laravel orm eloquent pivot

我遇到了一个问题,我需要在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();

我得到的水平只与学科相关,而不是许可和学科。

我希望获得与每个学科和每个许可相关的所有级别。

如何实现这一目标?

我应该在模型之间定义不同的关系吗?

或者我应该构建不同的查询?

0 个答案:

没有答案