Я пытаюсь использовать связь HABTM между 2 таблицами episodes
и filters
. Таблица ассоциации - episodes_filters
. Я хочу найти все эпизоды, которые соответствуют идентификаторам фильтров 1 и 2. Я понимаю, что CakePHP делает И условия по умолчанию, но мои усилия привели к возврату результатов, соответствующих либо эпизоду id 1 или 2, либо вообще никаких результатов.Cakephp 2 HABTM найти с AND условия
Вот где я приземлился до сих пор с кодом:
$filterConditions = array();
foreach($filterIds as $filterId) {
$filterConditions[] = array('EpisodesFilters.filter_id' => $filterId);
}
$episodeFilters = $this->Episode->find('all', array(
'conditions' => array(
'Episode.organization_id' => $this->Auth->user('organization_id'),
'Episode.status' => $this->request->query['episode_status']
),
'joins' => array(
array('table' => 'episodes_filters',
'alias' => 'EpisodesFilters',
'type' => 'INNER',
'conditions' => array(
$filterConditions,
'EpisodesFilters.episode_id = Episode.id'
)
)
),
));
Я попытался сделать каждый идентификатор фильтра в РЕГИСТРИРУЙТЕСЬ это собственное состояние вместо того, чтобы делать это как массив, как: «» EpisodesFilters.filter_id => array (1,2), но это приводит к возвращению эпизодов с фильтрами 1 или 2, а не к обоим.
Может ли кто-нибудь помочь мне определить, как настроить это условие для поиска HABTM?
Это решение дает тот же результат, по существу возвращающий эпизоды с идентификатором фильтра 1 или 2, а не оба. –