0

我想创建 HABTM 自我关联。也就是说,用户可以与其他用户相关联。问题是这样的:我可以将一个用户的关联保存到另一个用户,但我只能以一种方式查看和编辑这些关联。这是我的协会:

'Partner' => array(
    'className' => 'User',
    'joinTable' => 'players_trainers',
    'associationForeignKey' => 'player_id',
    'foreignKey' => 'trainer_id', 
    'unique' => true
)

所以当我打电话给一个用户(他是一名教练)时,我可以看到与他们相关联的球员。没有汗水。但是,当尝试从另一端查看/编辑关联时(查看球员与哪些教练相关联),什么都不会出现,因为该关联以相同的方式对待每个用户:期望从教练与球员关联。

我考虑过在我的控制器中进行即时绑定(基于用户角色),但这似乎很老套。

有没有一种干净的方式来进行 HABTM 自关联,而无需向我的模型添加新字段?我究竟做错了什么?

4

1 回答 1

0

尝试设置其他关联。

var $hasAndBelongsToMany = array(
 'Partner' => array(
    'className' => 'User',
    'joinTable' => 'players_trainers',
    'associationForeignKey' => 'player_id',
    'foreignKey' => 'trainer_id', 
    'unique' => true
  ),
  'Trainer' => array(
    'className' => 'User',
    'joinTable' => 'players_trainers',
    'associatedForeignKey' => 'trainer_id',
    'foreignKey' => 'player_id',
    'unique' => true
  )
);
于 2012-10-17T01:15:18.243 回答