簡體   English   中英

在Yii中返回CActiveDataProvider

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM