【问题标题】:User has many Users relationship, The CakePHP Way用户有很多用户关系,CakePHP 方式
【发布时间】:2016-06-28 08:57:11
【问题描述】:

我有一张桌子

Users:
id|name|surname

现在我需要将用户相互关联,这样每个 User 都有许多 Users(我实际上指的是朋友,例如 Facebook 朋友)。

按照 CakePHP 的约定,最终可能会得到一个像这样的奇怪表格:

Users
id|name|surname

UserUsers
id|user_id|user_id

修改我的结构以实现这一目标的最佳方法是什么。请注意,在我搜索之前,这可能已经被问过,但考虑到 Cakephp 约定和所有内容,并没有专门针对 CakePHP 3.X 询问。

【问题讨论】:

  • 连接表名应该是UsersUsers,并且你不能在同一个数据库表中提交2个user_id。我会添加第二个名为 Friends 的模型,它连接到 Users 表,并有一个 UsersFriends 加入模型。
  • 您正在使用的 CakePHP 版本,甚至根本使用的是 CakePHP,都与答案无关。这有点像询问从 A 到 B 的行车路线专门针对蓝色汽车
  • Friendships in CakePHP 2.x 的可能重复项(首次发现重复项,如果不能解决您的问题,请搜索“friendship schema”或类似内容)

标签: cakephp cakephp-3.0


【解决方案1】:

我相信您可以在蛋糕 3 中的 UsersTable 中定义这样的关系:

$this->belongsTo('Users', [
            'className'  => 'Users',
            'foreignKey' => 'facebook_user_id',
            'joinType'   => 'LEFT'
        ]);

您必须定义一个 facebook_user_id 并将其设置为您的 id 的外键。

【讨论】:

    猜你喜欢
    • 2019-02-19
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 2020-05-03
    相关资源
    最近更新 更多