【问题标题】:How do I create different many to many relationships for the same two tables using Eloquent in Laravel如何在 Laravel 中使用 Eloquent 为相同的两个表创建不同的多对多关系
【发布时间】:2023-03-23 05:31:01
【问题描述】:

我有 2 个表“用户”和“内容”。 用户可以收藏内容,因此我使用数据透视表 User_Content 来建立用户与他们收藏的内容之间的多对多关系。 这很好。

用户还可以购买内容。这将是与上述(User_Content)相同的关系,但将是完全不同的数据。

我如何设置这样的关系,其中表之间的关系相同但内容不同 - 这可以在 Laravel 中使用 Eloquent 成功完成吗? 或者我应该以完全不同的方式来解决这个问题?

【问题讨论】:

标签: php mysql laravel-4 many-to-many eloquent


【解决方案1】:

只需设置一个包含 user_id 和 content_id 字段的 user_purchase 和 user_favorite 表

然后设置模型

作为

class User extends Eloquent{
    public function purchases()
    {
        return $this->belongsToMany('Content','user_purchase');
    }

    public function favorites()
    {
        return $this->belongsToMany('Content','user_favorite');
    }
}

class Content extends Eloquent{

    public function buyers()
    {
        return $this->belongsToMany('User','user_purchase');
    }

    public function favorites()
    {
        return $this->belongsToMany('User','user_favorite');
    }
}

第二列表示要检查哪个表的多对多关系

【讨论】:

  • 完美——这正是我所追求的。
猜你喜欢
  • 2011-02-26
  • 2020-12-16
  • 2021-07-05
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
  • 2015-08-02
  • 2019-01-21
相关资源
最近更新 更多