我有3个表结构...
歌曲(id,状态)
曲目列表(id、song_id、artist_id、状态)
艺术家(身份,身份)
我希望有 HABTM,所以我提到了.. Song MODEL
var $hasAndBelongsToMany = array(
'Artist' => array(
'className' => 'Artist',
'joinTable' => 'tracklists',
'foreignKey' => 'song_id',
'associationForeignKey' => 'artist_id',
'conditions' => array('tracklist.status' => '1')
'with' => 'Tracklist',
//'unique' => true
),
);
艺术家模特
var $hasAndBelongsToMany = array(
'Song' => array(
'className' => 'Song',
'joinTable' => 'tracklists',
'foreignKey' => 'artist_id',
'associationForeignKey' => 'song_id',
'with' => 'Tracklist',
//'unique' => true
),
);
曲目列表模型 var $belongsTo = array(
'Song' => array(
'className' => 'Song',
'foreignKey' => 'song_id',
'dependent' => true
),
'Artist' => array(
'className' => 'Artist',
'foreignKey' => 'artist_id',
'dependent' => true
)
);
这种方式但问题是当我试图从 Artist 表中查找记录时,它会毫无条件地找到所有记录。
$artist_conditions = array('Artist.status' => '1');
$artist_list = $this->Song->Artist->find('list', array('conditions' => $artist_conditions ));
我希望只获取与 tracklist 相关且 tracklist.status 为的艺术家1
。关系对吗??或者我只是将 hasMany 与(歌曲,艺术家)一起使用,将 BelongsTo 与(曲目列表)一起使用。