2つのテーブルepisodes
とfilters
の間でHABTM関連付けを使用しようとしています。関連付けテーブルはepisodes_filters
です。 CakePHPはデフォルトでAND条件を実行しますが、私の努力の結果、エピソード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'
)
)
),
));
私はJOINをそれ自身の状態で各フィルタIDを作ってみました代わりのような配列としてそれをやって:「EpisodesFilters.filter_id」 => array(1,2)、その結果、フィルタ1または2を持つエピソードが返され、両方が返されることはありません。
HABTMルックアップでこの条件を設定する方法を誰にでも教えてもらえますか?
この解決策は同じ結果をもたらし、本質的に、1つまたは2つのフィルタIDを持つエピソードを返します。 –