0

一般来说,我如何在一个表中创建外键(即列),Cakephp 通过不同的名称将其与另一个模型的列关联?顺便说一句,我正在使用bake all标准 CRUD 设置开始。

我的问题的一般形式是:

Table_Aid| label| TableB_labelA_id|TableB_labelB_id

Table_Bid|label

不过,为了让问题的其余部分不那么难看,这是我当前的应用程序:

gamesid| date| us|them

teamsid|name

我认为这可以通过别名和关联定义单独实现,但我不太明白如何。我也想到简单地创建UsThem扩展的模型Team,但这似乎是一种过度的努力。

我还注意到,在我的Game model那个UsThem列在$belongsTo数组中,而不是$hasMany直观地看起来更正确。

想法?我将不胜感激!

4

1 回答 1

2

您只需要别名和正确的关联定义是对的。这就是你需要的。

class Game extends AppModel {
    public $belongsTo = array(
        'Us' => array(
            'className' => 'Team',
            'foreignKey' => 'us'
        ),
        'Them' => array(
            'className' => 'Team',
            'foreignKey' => 'them'
        ),
    );  
}

Bake 无法帮助您解决这个问题。如果所有命名都符合约定,那么它只能做出有根据的猜测,在这种情况下这是不可能的。

于 2013-04-18T20:45:10.300 回答