2012-10-16 176 views
0

我想創建HABTM自我關聯。也就是說,用戶可以與其他用戶關聯。問題是這樣的:我可以將一個用戶的關聯保存到另一個用戶,但我只能以一種方式查看和編輯這些關聯。這是我的協會:CakePHP:自引用HABTM關聯?

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

所以當我打電話給用戶(他是一個教練),我可以看到與他們有關的球員。沒有汗水。但是,當試圖從另一端查看/編輯關聯(以查看某個球員與哪個球員關聯)時,沒有任何內容出現,因爲該關聯以同樣的方式對待每個用戶:期望從教練員關聯到球員。

我想過在我的控制器(基於用戶角色)中進行動態綁定,但這似乎很難。

有沒有一種乾淨的方式來擁有HABTM自我關聯,而不必爲模型添加新的字段?我究竟做錯了什麼?

回答

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 
) 
); 
+0

這有2個問題:1)找到(「擰」,...),只有「培訓師」,而不是「夥伴」返回和2)通過一種形式似乎沒有增加一個合作伙伴工作。 –