CakePHP和HABTM标记过滤

时间:2010-02-19 03:32:40

标签: cakephp filtering has-and-belongs-to-many

我和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将出现两次。

调试查询如下所示:

  

选择NewsItemidNewsItemuser_idNewsItemheadingNewsItem。{{1} },bodyNewsItemmodifiedUser FROM first_name AS news_items LEFT JOIN NewsItem AS users ON(UserNewsItem = user_idUser)LEFT JOIN id AS camps_news_items ON(CampsNewsItem。{{1 }} = CampsNewsItemnews_item_id)WHERE NewsItemid IN(1,5)ORDER BY CampsNewsItemcamp_id desc LIMIT 10 < / p>      

选择NewsItemmodifiedCampidCampnameCamp。{{1} },createdCampmodifiedCampsNewsItem FROM camp_id AS CampsNewsItem加入news_item_id AS camps ON (Campcamps_news_items IN(6,6,7,8)和CampsNewsItemCampsNewsItem = news_item_idCampsNewsItem)WHERE 1 = 1

php代码如下所示:

camp_id

感谢您的任何见解!

1 个答案:

答案 0 :(得分:2)

试试这个:

$params['group'] = array('NewsItem.id');