Я отвечаю, потому что я не могу комментировать ответ Meibooms.
Это неправильно, потому что не должно быть поля Member.club_id
как его отношения HABTM .
Вместо этого у вас должна быть таблица соединений: ClubsMembers.club_id
ClubsMembers.member_id
Как объяснено в ответе на связанный вопрос, который вы упомянули, вам нужно связать поддельное отношение hasOne, чтобы иметь возможность установить необходимые условия.
В вашем конкретном случае:
$this->Club->Member->bindModel(array(
'hasOne' => array('ClubsMember')
), false);
// Set up the paginate options array
$this->paginate['Member'] = array(
'contain' => array(
'ClubsMember',
),
'conditions' => array(
'ClubsMember.club_id' => $club_id,
),
//Group since the HasOne may return multiple rows for each
//(if $club_id is an array of IDs and a Member is in more than one of those).
'group' => 'Member.id',
'order' => 'Member.name',
);
$this->set('members', $this->paginate('Member'));
Игнорировать часть contain
, если вы не используете ContainableBehavior
. (Торт все равно проигнорирует.)