「menu_items」と「articles」に関連するテーブル「menu_items_articles」があります。「articles」テーブルには、「tags」および「menu_items」との HABTM 関係があります
ここで、特定の menu_tems.id とそれに関連する「タグ」を持つすべての「記事」を取得したいと考えています。
「記事」に 4 つのタグがある場合、配列は記事を 4 回カウントします。関連するすべてのタグを含む記事を 1 回欲しいです。記事に関連付けられているタグは 1 つだけです。
これは私が持っているものです
$this->MenuItemsArticle->recursive = -1;
$options['joins'] = array(
array('table' => 'articles_tags',
'alias' => 'ArticlesTag',
'type' => 'inner',
'conditions' => array(
'ArticlesTag.article_id = MenuItemsArticle.article_id'
)
),
array('table' => 'articles',
'alias' => 'Article',
'type' => 'inner',
'conditions' => array(
'ArticlesTag.article_id = Article.id'
)
),
array('table' => 'tags',
'alias' => 'Tag',
'type' => 'inner',
'conditions' => array(
'ArticlesTag.tag_id = Tag.id'
)
)
);
$options['conditions'] = array(
'MenuItemsArticle.menu_item_id' => $menu_item
);
$options['fields'] = array('DISTINCT MenuItemsArticle.*',' Article.*','Tag.*');
$this->paginate = $options;
$result = $this->paginate('MenuItemsArticle');