Yii: 设置查询最大记录数

设置查询记录数对于直接写sql而言,很简单就是设置limit

在Yii中,如果你使用ActiveRecord, 那么分别有两种情况需要处理。


1. 不分页

		$criteria = new CDbCriteria;
		$criteria->condition = $condition;
		$criteria->params = $params;
		$criteria->order = $order
		$criteria->limit = 200;


2. 需要分页

                $dataProvider=new CActiveDataProvider('Models',array(
                'criteria'=>array(
                        'order'=>'id DESC',
                        'limit'=>200,
                        ),
                ));
                $this->render('last',array(
                        'dataProvider'=>$dataProvider
                ));

上面这种情况不工作,查看Yii的源代码就知道,需要显式的初始化CActiveDataProvider的pagenation属性为false;(其默认值为null):' pagination'=>false。

否则criteria的limit不起作用,而是Pagenation的pageSize起作用。


假设你要实现数据分页,但又要限定总查询结果个数,目前Yii还不支持,得自己变通一下。

        $criteria = $model->setCriteria($condition, array(), '`t`.`userId` DESC');
        $num = User::model()->count($criteria);
        $num = $num>200?200:$num;
        $pages = new CPagination($num);
        ......

iefreer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值