0
我有简单的结构: 用户有帖子,帖子有标签。Yii。 Many_Many relations上的条件
如何获取所有标签,哪些标签分配给定用户的帖子?
我试图做这种方式:
$criteria = new CDbCriteria();
$criteria->together = true;
$criteria->with = array('posts');
$criteria->addSearchCondition('posts.user_id', $this->id);
//or this (by the way, what's the difference?):
//$criteria->compare('posts.user_id', $this->id);
$tags = Tag::model()->findAll($criteria);
但它也有问题。这个情况给我的标签,只与该用户的职位分配。但我需要获取标签,该标签至少分配给该用户的一个帖子。换句话说,如果它是标签,它被分配两个帖子:post1和post2(post1.user_id = 1 post2.user_id = 2),但我的用户有id = 1,那么这个标签不会结果。但我想得到这个标签,因为它被分配了post1(post1.user_ud = 1),我不关心其他帖子/用户。
这不完全是我想要的。无论如何,我想排序/过滤/限制结果。我能以你的方式做到吗?如果是,如何? – Skiv 2014-09-26 05:19:13
确定这样做:我会更新我的帖子 – DarkMukke 2014-09-26 07:52:10
对不起,但它仍然不是我的意思.. 你写道: ...'帖子(user_id,tag_id)'... 但是帖子和标签isn'直接分配。它也是关系MANY_MANY(帖子可以有很多标签,并且它没有'tag_id'字段)。 – Skiv 2014-09-26 13:47:49