如何设置与自身和另一个模型有多对多关系并允许排序的模型?

时间:2015-08-25 01:49:48

标签: laravel-5 laravel-5.1

我有一个集合表,一个组件表,以及一个用于集合和组件之间多对多关系的数据透视表。这让我可以创建'收藏' '组件'。我使用rutorika-sortable来启用组件的排序。

问题是我还希望Collection与另一个Collection相关。我尝试了一个' Collection-Collection'数据透视表,我遇到的问题是我无法弄清楚如何处理排序。例如,我希望组件A 收藏B 组件B 属于收藏A 并显示在查看收藏A 时的订单。排序不再有效,因为两个枢轴中的顺序列彼此独立。

我认为我需要某种多态关系,但我不确定最好的方法是什么。我怎样才能达到我想要的效果?

1 个答案:

答案 0 :(得分:0)

我不确定这是否是最好的方法,但为了解决这个问题,我添加了一对一关系,其中集合 hasOne 组件除了现有的多对多关系。

现在,填充了 collection_id 字段的组件将充当该集合的一种别名。然后,当我浏览链接到集合的所有组件时,我可以检查它们是否链接到另一个集合,并采取相应的行动。

主要的缺点是,从现在开始,在通过多对多链接组件和集合之前,我需要检查以确保它们与之一尚未关联一对一,反之亦然,以防止递归。