我是Laravel和Eloquent的新手(我对ORM的经验很少)。
假设我有三个数据库表:
我已为一个联结表建模,该联结表具有以下列:
widget_id
action_id
user_id
结点的目的是保持交互的日志-每次
user
在action
上执行widget
时都要加上时间戳。我知道如何使用Eloquent为简单的多对多关系建模,并且可以正常工作,但是我不确定如何为更复杂的三向关系建模。就此而言,即使我有一个简单的多对多关系(比如说
widget
到action
,所以会有一个名为action_widget
的表),我如何在Eloquent中为action_widget
表添加一个显式模型,以保持跟踪有关每个关系的额外数据(例如,时间戳,评论字段等)。还是我只是以一种完全错误的方式来解决这个问题?刚接触ORM时,我对自己的工作感到非常局限!这种感觉会消失吗? :p
最佳答案
当您有2类关系(例如类别<->文章)时,pivot可以很好地工作。
但是,如果您有3种方式的关系,我认为最好有一个名为WidgetUserAction的模型。
编辑:对于这些情况下,新的“hasManyThrough”工作正常。
关于orm - Eloquent /Laravel三对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16866999/