【发布时间】:2017-01-30 16:29:43
【问题描述】:
我正在尝试在两个表 episodes 和 filters 之间使用 HABTM 关联。关联表为episodes_filters。我想找到与过滤器 id 1 和 2 匹配的所有剧集。我的理解是 CakePHP 默认会执行 AND 条件,但我的努力导致返回的结果要么与剧集 id 1 或 2 匹配,要么根本没有结果。
这是我到目前为止使用代码到达的地方:
$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 查找设置此条件?
【问题讨论】:
标签: cakephp cakephp-2.0 has-and-belongs-to-many