多种多样的条件

时间:2012-12-16 17:09:46

标签: php yii

我正在尝试在表格中创建搜索条件多对多,但我遇到了问题。 我想使用帖子模型进行搜索,并按喜欢(多对多)表中的用户ID进行过滤。

表: 帖子,用户和喜欢(多对多)

模型Post.php关系:

'user_likes' => array(self::MANY_MANY, 'Users', 'likes(post_id, user_id)'),

在后置控制器中搜索条件:

$criteria->with='user_likes';
$criteria->condition='user_likes.id=1'; //Search posts that user id '1' liked.
$posts=Posts::model()->findAll($criteria);

错误:

CDbCommand falhou ao executar o comando SQL: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'user_likes.id' in 'where clause'. 

2 个答案:

答案 0 :(得分:1)

user_likes没有列id

这是你的意思吗?

$criteria->with='user_likes';
$criteria->condition='user_id=1'; //Search if user id '1' liked the post.

答案 1 :(得分:0)

感谢您尝试帮助他们。 我发现了这个问题。

使用findAll时,不需要声明$criteria->together=true;,但如果使用CActiveDataProvider则需要。

我希望这对某人也有帮助;)