orm - Eloquent /Laravel三对多关系

标签 orm laravel eloquent

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

假设我有三个数据库表:

  • 小部件
  • 操作
  • 用户

  • 我已为一个联结表建模,该联结表具有以下列:
  • widget_id
  • action_id
  • user_id
  • 时间戳

  • 结点的目的是保持交互的日志-每次useraction上执行widget时都要加上时间戳。我知道如何使用Eloquent为简单的多对多关系建模,并且可以正常工作,但是我不确定如何为更复杂的三向关系建模。

    就此而言,即使我有一个简单的多对多关系(比如说widgetaction,所以会有一个名为action_widget的表),我如何在Eloquent中为action_widget表添加一个显式模型,以保持跟踪有关每个关系的额外数据(例如,时间戳,评论字段等)。还是我只是以一种完全错误的方式来解决这个问题?

    刚接触ORM时,我对自己的工作感到非常局限!这种感觉会消失吗? :p

    最佳答案

    当您有2类关系(例如类别<->文章)时,pivot可以很好地工作。
    但是,如果您有3种方式的关系,我认为最好有一个名为WidgetUserAction的模型。

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

    关于orm - Eloquent /Laravel三对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16866999/

    相关文章:

    php - 如何在 Laravel 5 中检索 View 名称?

    php - 如何将 Laravel/Eloquent 结果映射到自定义类

    android - GreenDao 更新不起作用

    sql - 将 ORM 与存储过程一起使用,矛盾吗?

    javascript - Sequelize 迁移失败(postgres)

    Python 是否有用于 SQL 和 NoSQL 的 ORM

    php - 添加服务提供者类后找不到类

    laravel - 宅基地错误

    php - 使用 Laravel HasManyThrough 关系获取模型 ID 和更新字段时出错

    php - Eloquent 列列表以数组作为值?