如何在Yii 1.1.14中使用CDbCriteria删除限制条件

时间:2014-05-23 06:29:57

标签: php yii limit

我想使用CDbCriteria和CActiveDataProvider显示数据库的完整数据列表。 我做的是:

$criteria=new CDbCriteria;
$criteria->alias = 'C';
if ( !$enablePagination ) {
  $criteria->limit= 0;
  $criteria->offset= 0;
}

调试CDbCriteria对象我看到了:

$criteria::CDbCriteria Object
(
    [select] => *
    [distinct] => 
    [condition] => 
    [params] => Array
        (
        )

    [limit] => 0
    [offset] => 0
    [order] => name asc
    [group] => 
    [join] => 
    [having] => 
    [with] => 
    [alias] => C
    [together] => 
    [index] => 
    [scopes] => 
    [_e:CComponent:private] => 
    [_m:CComponent:private] => 
)

但是我跟踪了我的sql:

 SELECT *  FROM `tbl_category` `C` ORDER BY name asc LIMIT 10 

如何删除限制条件?

Yii 1.1.14。

谢谢!

3 个答案:

答案 0 :(得分:3)

试试这个:

$criteria->limit= -1;

如果limit小于0,则表示没有限制。

答案 1 :(得分:0)

您无法仅使用条件显示完整的数据列表。 CActiveDataProvider根据pageSize选项自动获取数据库。

pageSize中设置CActiveDataProvider选项,如下所示:

$dataProvider = new CActiveDataProvider('SomeModel', array(
    'criteria'=>$criteria,
    'pagination'=>array(
        'pageSize' => SomeModel::model()->count(),
    ),          
));

答案 2 :(得分:0)

试试这段代码:

$provider = new CActiveDataProvider('ModelClass', [
    'pagination'    => false,
    'criteria'      => $criteria,
]);