我正在尝试在表格中创建搜索条件多对多,但我遇到了问题。 我想使用帖子模型进行搜索,并按喜欢(多对多)表中的用户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'.
答案 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则需要。
我希望这对某人也有帮助;)