[英]return CActiveDataProvider in Yii
我有4個數據庫表:
用戶名:id,用戶名,密碼
樓層 :ID,用戶ID,名稱
房間 :ID,樓層,名稱
學生 :身份證,房間,姓名,現役
如何為跟隨的SQL命令返回CActiveDataProvider?
SELECT * FROM `student` WHERE `student`.`active` = 0 AND `student`.`room` IN (SELECT `room`.`id` FROM `room` WHERE `room`.`floor` = (SELECT `floor`.`id` FROM `floor` WHERE `floor`.`userid` = $userid))
我試過了:
$model = Student::model()->findAllBySql("SELECT * FROM student WHERE active = 0 AND room IN (SELECT id FROM room WHERE floor = (SELECT id FROM floor WHERE user = $user))");
return new CActiveDataProvider($model);
但是回應:
致命錯誤:在第225行的X:appserv \\ www \\ framework \\ web \\ CActiveDataProvider.php中的非對象上調用成員函數getDbCriteria()
命名占位符很有用。
$criteria = new CDbCriteria;
$criteria->condition = 'student.active = 0 AND student.room IN (SELECT room.id FROM room WHERE room.floor = (SELECT floor.id FROM floor WHERE floor.userid = :userid))';
$criteria->params=array(':userid'=>$userid);
$dataProvider = new CActiveDataProvider('Student',array('criteria'=>$criteria,));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.