我和CakePHP HABTM的关系有点挣扎,而且我一直试图做一个看似简单的任务。我有很多营地和许多NewsItems。每个NewsItem都可能与任何阵营相关,因此当用户创建一个NewsItem时,他们会检查该项目所属的阵营。这就是主意。
因此...
我想在我的NewsItems视图中加入一些阵营过滤。换句话说,我希望看到所有NewsItems与Camp“A”和Camp“B”相关。
为“find”和“paginate”功能添加条件就像魅力一样。
...然而
如果NewsItem属于多个阵营,则会在列表中多次出现。因此,当我告诉find给我所有属于Camp“A”和Camp“B”的NewsItem时,属于Camp“A”和Camp“B”的NewsItem将出现两次。
调试查询如下所示:
选择
NewsItem
。id
,NewsItem
。user_id
,NewsItem
。heading
,NewsItem
。{{1} },body
。NewsItem
,modified
。User
FROMfirst_name
ASnews_items
LEFT JOINNewsItem
ASusers
ON(User
。NewsItem
=user_id
。User
)LEFT JOINid
AScamps_news_items
ON(CampsNewsItem
。{{1 }} =CampsNewsItem
。news_item_id
)WHERENewsItem
。id
IN(1,5)ORDER BYCampsNewsItem
。camp_id
desc LIMIT 10 < / p>选择
NewsItem
。modified
,Camp
。id
,Camp
。name
,Camp
。{{1} },created
。Camp
,modified
。CampsNewsItem
FROMcamp_id
ASCampsNewsItem
加入news_item_id
AScamps
ON (Camp
。camps_news_items
IN(6,6,7,8)和CampsNewsItem
。CampsNewsItem
=news_item_id
。CampsNewsItem
)WHERE 1 = 1
php代码如下所示:
camp_id
感谢您的任何见解!
答案 0 :(得分:2)
试试这个:
$params['group'] = array('NewsItem.id');