2014-06-19 93 views
0

我有一個模型調用播放列表。 播放列表與跟蹤HABTMCakePHP。找到返回多個HABTM關係

public $hasAndBelongsToMany = array(
    'Track' => array(
     'className' => 'Track', 
     'joinTable' => 'tracklists_tracks', 
     'foreignKey' => 'tracklist_id', 
     'associationForeignKey' => 'track_id', 
     'unique' => 'keepExisting', 
     'conditions' => '', 
     'fields' => array('id','title','version'), 
     'order' => 'TracklistsTrack.timing' 
    ) 
); 

跟蹤與APPUSER一個HABTM現在

public $hasAndBelongsToMany = array(
    'Artist' => array(
     'className' => 'AppUser', 
     'joinTable' => 'artists_tracks', 
     'foreignKey' => 'track_id', 
     'associationForeignKey' => 'artist_id', 
     'unique' => 'keepExisting', 
     'conditions' => '', 
     'fields' => array('id','username') 
    ) 
); 

,我想,當我寫這篇文章

$曲目列表= $這個 - > Tracklist- > findById($ ID);

爲每個曲目獲取所有曲目(並且這的確按照預期工作),併爲每個曲目的所有AppUsers(級聯)。

請注意,如果我寫$ this-> Track-> findById($ id); 我實際上可以獲得與該曲目相關的AppUsers

任何想法都可以通過我的勤奮命名約定來開箱即用嗎?

謝謝

+0

下能否請您寫這兩種模式?我與AppUser和Artist混淆。 – chetanspeed511987

+0

建議:通常您應該將您的HABTMs轉換爲hasMany,就像加入模型一樣,以獲得更好的靈活性。 habtms變得非常難以管理,你可以閱讀:http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasmany-through-the-join-model和http:// book.cakephp.org/2.0/en/models/saving-your-data.html#what-to-do-when-habtm-becomes-complicated –

+0

當然,Artist是我用於AppUser的別名,因爲曲目會有藝術家,但也有AppUsers的混音師。 – Snick

回答