0

我正在尝试使用 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 关系,我不确定如何让它在链接表。

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

4

1 回答 1

0

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

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

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

于 2013-11-03T15:56:29.197 回答