CakePHP:自我引用HABTM关联?

时间:2012-10-16 19:50:35

标签: cakephp associations

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

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

因此,当我呼叫用户(他是一名教练)时,我可以看到与他们相关的玩家。没有汗水。但是当试图从另一端查看/编辑关联时(看看玩家与之关联的训练者)没有出现任何内容,因为关联是以相同的方式对待每个用户:期望从训练者关联到玩家。 / p>

我考虑过在我的控制器中进行动态绑定(基于用户角色),但这看起来很糟糕。

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

1 个答案:

答案 0 :(得分: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
  )
);