Ich versuche, eine HABTM Verbindung zwischen 2 Tabellen episodes
und filters
zu verwenden. Die Zuordnungstabelle lautet episodes_filters
. Ich möchte alle Episoden finden, die beiden Filter-IDs 1 und 2 entsprechen. Mein Verständnis ist, dass CakePHP AND-Bedingungen standardmäßig ausführt, aber meine Bemühungen haben dazu geführt, Ergebnisse entweder mit Episode ID 1 oder 2 oder überhaupt keine Ergebnisse zurückgeben.CakePHP 2 HABTM mit AND Bedingungen finden
Hier ist, wo ich bisher mit dem Code gelandet:
$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'
)
)
),
));
Ich habe versucht, jeden Filter-ID zu machen in der JOIN es eigenen Zustand ist, anstatt wie es als ein Array zu tun: ‚EpisodesFilters.filter_id‘ => array (1,2), aber das führt dazu, dass Episoden mit Filtern 1 oder 2 zurückgegeben werden, nicht beides.
Kann mir jemand helfen zu bestimmen, wie diese Bedingung für die HABTM-Suche eingerichtet wird?
Diese Lösung erzeugt das gleiche Ergebnis und gibt im Wesentlichen Episoden zurück, die eine Filter-ID von 1 oder 2 haben, nicht beides. –