我正在开发一款User
可以Answer
某些Questions
的游戏。
我正在尝试创建一个控制器操作,以返回Question
尚未回答的User
{A Question
,其中没有Answer
与记录的User
相关联WHERE NOT EXISTS
})。
我的代码尝试无法正常运行。
Yii Framework
,我认为它可以做到这一点,但我不知道如何在$criteria=new CDbCriteria;
$criteria->with=array('answers'=>array('condition'=>'user_id='.Yii::app()->user->id));
$criteria->having='count(answers.id)=0';
$model=Question::model()->findAll($criteria);
中使用它。数据库:
控制器操作:(无法正常工作)
{{1}}
答案 0 :(得分:0)
您可以将DAO与Yii一起使用,这是与数据库交互的最直接方式。 http://www.yiiframework.com/doc/guide/1.1/en/database.dao
答案 1 :(得分:0)
我找到了如何在Yii Documentation
进行搜索。
代码:
$sql = 'SELECT * FROM question WHERE NOT EXISTS (SELECT * FROM answer WHERE answer.user_id='.Yii::app()->user->id.' AND answer.question_id=question.id);';
$question = Yii::app()->db->createCommand($sql)->setFetchMode(PDO::FETCH_OBJ)->queryRow();
的信息:
setFetchMode(PDO::FETCH_OBJ)
用于将data
作为object
返回,因此可以像$question->id
一样访问它。