【问题标题】:Laravel relationship among 3 elementsLaravel 3个元素之间的关系
【发布时间】:2016-08-14 14:25:42
【问题描述】:

情况:

  • 一个用户可以组织多个聚会
  • 一个用户可以参与多方
  • 参加派对的用户必须声明将携带何种物品(食物、餐具、其他)参加该特定派对

我在考虑 3 个模型/表格,例如:用户、派对、设备(可能是一个更好的名称,但我还没有决定),另外还有另一个表格来将这 3 个元素与 3 列联系起来,每个元素的 id 一个, 这样我就可以检索所需的信息,例如,给定一个聚会,知道每个参与者会带什么。

我如何使用 Eloquent 来表示这一点? 我正在考虑多态关系,但我无法找到解决方案。

我认为拥有我需要的东西是错误的吗?

【问题讨论】:

    标签: php eloquent laravel-5.2


    【解决方案1】:

    使用 Eloquent,我认为您不需要另一张桌子。 3 个表就足够了 - userspartiesthings。要建立关系,您可以在各自的模型中使用 eloquent。

    示例:在 User 模型中,您可以执行类似的操作

    public function parties()
    {
      return $this->hasMany('Party');
    }
    
    public function()
    {
      return $this->hasMany('Thing');
    }
    

    派对模式中,

    public function users()
    {
      return $this->belongsToMany('User');
    }
    

    有了这样的关系,你应该很高兴。

    也可以查看https://laravel.com/docs/5.2/eloquent

    【讨论】:

    • 我遇到了这个问题。用户和派对之间的多对多关系并没有告诉我是谁组织了派对以及谁只是参加了派对。有了这种关系,“聚会由许多用户组织”,但聚会由一个用户组织,并且有许多用户参与。
    • 我明白了。这意味着您只需将 Party 模型更改为 $this->belongsTo('User')。因此,Party 属于 User,而 User 可以拥有(参与)许多 Party
    猜你喜欢
    • 1970-01-01
    • 2016-09-03
    • 2018-10-17
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    相关资源
    最近更新 更多