Eloquent / Laravel三方多对多关系

时间:2013-05-31 22:36:38

标签: orm laravel eloquent

我是Laravel和Eloquent的新手(我对ORM的总体经验很少)。

假设我有三个数据库表:

  1. 窗口小部件
  2. 操作
  3. 用户
  4. 我已经建模了一个包含以下列的联结表:

    1. widget_id
    2. action_id
    3. user_id
    4. 时间戳
    5. 交汇点的目的是记录交互记录 - 每次useraction上执行widget时都需要时间戳。我看到如何使用Eloquent建立一个简单的多对多关系模型并使其工作正常,但我不确定如何建模更复杂的三向关系。

      就此而言,即使我有一个简单的多对多关系(比如widgetaction所以会有一个名为action_widget的表格,我该如何添加为了跟踪每个关系的额外数据(例如时间戳,注释字段等),Eloquent中action_widget表的显式模型。或者,我是以完全错误的方式解决这个问题?

      作为ORM的新手,我觉得我能做的事情非常紧张!这种感觉会消失吗? :P

2 个答案:

答案 0 :(得分:12)

当你有像Categoty< - > Article这样的双向关系时,

工作正常。 但如果你有3路关系,我认为最好有一个名为WidgetUserAction的模型。

编辑:对于这些情况,新的“hasManyThrough”工作正常。

答案 1 :(得分:0)

Laravel可以自动创建中间模型。他们被称为“枢轴表”。

我建议你阅读this section in the documentation

相关问题