先の投稿にも書きましたが、
select id from hoge where status=1 and created>'2012-12-12' order by id limit 5;
のようなSQLを発行したい場合は、
$criteria = new CDbCriteria;
$criteria->select='id';
$criteria->order='id';
$criteria->limit=5;
$criteria->compare('status','1');
$criteria->compare('created','>2012-12-12');
$datas=$this->findAll($criteria);のようにすると$datasにデータを取得することができますが、CActiveDataProvider経由でデータを取得したい場合、
$criteria = new CDbCriteria;
$criteria->select='id';
$criteria->order='id';
$criteria->limit=5;
$criteria->compare('status','1');
$criteria->compare('created','>2012-12-12');
$dataProvider=new CActiveDataProvider(get_class($this), array(
'criteria' => $criteria,
));のようにしてもorderとlimitがCActiveDataProviderには渡りません。
CActiveDataProviderでorderやlimitを利用する場合は、
$criteria = new CDbCriteria;
$criteria->select='id';
$criteria->compare('status','1');
$criteria->compare('created','>2012-12-12');
$dataProvider=new CActiveDataProvider(get_class($this), array(
'criteria' => $criteria,
'sort' => array(
'defaultOrder' => 'id',
),
'pagination' => array(
'pageSize' => 5,
),
));のようにする必要があります。