【问题标题】:CakePHP - HABTM Multiple Records to Same ModelCakePHP - HABTM 多个记录到同一模型
【发布时间】:2013-11-02 23:03:05
【问题描述】:

我正在尝试使用 CakePHP 中的 HABTM 关联将来自同一模型的多条记录连接到来自另一个模型的一条记录。

我试图关联的模型是 User 和 Bet。用户模型比较标准,难的是赌注模型。除其他事项外,投注记录具有 ID,以及 user_1_id 和 user_2_id 列。每个赌注有两个参与者。

起初我认为将这两个存储在 bet 表中的同一记录中会很好,在用户模型中有一个简单的 hasMany 关联,以及一个查找器查询,因为我有两个外键:

public $hasMany = array(
    'Bet' => array(
        'className' => 'Bet',
        'foreign_key' => false,
        'finderQuery' => 'SELECT *
                            FROM `bets` as `Bet`
                            WHERE `Bet`.`user_1_id` IN ({$__cakeID__$})
                            OR `Bet`.`user_2_id` IN ({$__cakeID__$})',
    ),

但是,就像我说的那样,我遇到了一些困难,而且这种关系似乎只在一个方向上起作用(即,我可以在处理个人投注时查看用户详细信息,但在处理我无法关联的用户时投注详情)。

所以现在我相信我将需要一个带有连接表的 HABTM 关系,但我不确定如何让它工作以存储同一模型的多个记录,以及另一个模型中的一个,在链接表中。

这让我头疼,所以任何外部观点或建议确实会很有帮助, 谢谢!

【问题讨论】:

    标签: php mysql database cakephp relationship


    【解决方案1】:

    我自己设法解决了这个问题。看来我的联想全错了。 我在 Cake Book 中偶然发现了这个:http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#multiple-relations-to-the-same-model

    不知道我之前怎么没有意识到这一点,因为我在我的应用程序的其他地方使用完全相同的关联来处理追随者系统。关键是为模型使用别名,如指南中详细说明的那样。

    希望这将有助于将来帮助其他人!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      相关资源
      最近更新 更多