在filterby(标记)之后获取每个项目的所有关联标记

时间:2011-08-26 17:46:04

标签: cakephp

我有典型的关联HABTM项目< - >标签

如果我得到所有带有tag =“test”的项目:

$items = $this->Item->Tag->find('all', array('conditions'=>array('Tag.name'=>$tag)));

$ items数组正确显示包含与标记关联的Items的[Items]数组,但是 如何获得每个项目的所有标签,以便我可以在项目及其所有标签后显示?

谢谢。

1 个答案:

答案 0 :(得分:1)

编辑:看起来像蛋糕不喜欢这个主意。您可以通过稍微区别地调用关联来破解它:

$this->Item->bindModel(array('hasAndBelongsToMany' => array(
        'BlahTag'=>array(
            'className' => 'Tag',
            'joinTable' => 'items_tags',
            'foreignKey' => 'item_id',
            'associationForeignKey' => 'tag_id',
            'unique' => true,
        )
    )),false);
  $this->Item->BlahTag->bindModel(array('hasAndBelongsToMany' => array(
        'Item'=>array(
            'className' => 'Item',
            'joinTable' => 'items_tags',
            'foreignKey' => 'tag_id',
            'associationForeignKey' => 'item_id',
            'unique' => true,
        )
    )),false);
 $items = $this->Item->BlahTag->find('all', array(
   'contain'=>array('Item'=>array('BlahTag')),
   'conditions'=>array('BlahTag.name'=>$tag)
));