圆般 2011-03-30 20:59:17 4040次浏览 9条回复 0 0 0
$cri = new CDbCriteria;
$cri->condition = 'create_uid =' . Yii::app()->user->uid.' and '.'update_uid=' . Yii::app()->user->uid;       
$cri->order = 'tid DESC';
$cri->limit = 5; 
return new CActiveDataProvider(get_class($this), array(
  'criteria' => $cri,
  'pagination'=>array(
  'pageSize'=>[color=Red]21[/color],
),
trace sql的结果:

Querying SQL: SELECT * FROM table t ORDER BY tid DESC LIMIT 21


页容量,变成了limit...
那么如何限定dataprovider的数据总量呢...
在CDbCriteria的属性中能限制数据总量的只有limit了吧...
  • 回复于 2011-03-30 21:08 举报

    没看出什么异常,很顺理成章啊。

  • 回复于 2011-03-30 21:08 举报

    数据总量如何控制呢

  • 回复于 2011-03-30 21:11 举报
    $cri = new CDbCriteria;
    $cri->condition = 'create_uid =' . Yii::app()->user->uid.' and '.'update_uid=' . Yii::app()->user->uid;       
    $cri->order = 'tid DESC';
    $cri->limit = 5;     //这里就可以控制
    
  • 回复于 2011-03-30 21:12 举报

    没起到效果啊~~ limit的设置被忽略了

  • 回复于 2011-03-30 22:27 举报

    最近有个同事也遇到了limit的问题我一直没注意,上次commandCreate的时候用limit没有问题,但是他是在AR和DAtaProvider里用的,貌似是有一个规则,不是问题。

    AR好像用findAll就可以了,Provider没注意。。。明天晚上研究下。

  • 回复于 2011-03-31 15:43 举报

    我是使用了CGridView,其中dataprovider默认给定的是CActiveDataProvider
    我今天改成 CArrayDataProvider时候,用limit就可以用了....
    其他,没有什么特别的...难道是action之间有冲突么??

  • 回复于 2012-05-30 17:04 举报

    MARK 下,我遇到过同样的问题。据说CActiveDataProvider里面limit无效,就是说不能限制查询的总数量。

  • 回复于 2012-06-11 10:29 举报

    还没解决么?
    今天我无意中发现了,是我们使用不当,limit可以用的

    public function actionHot()
    {
      $criteria=new CDbCriteria(array(
        'order'=>'good DESC',
        'with'=>array('username'),
        'limit'=>1,
        //'offset'=>1,
      ));
    $dataProvider=new CActiveDataProvider('stories', array(
      //'pagination'=>array(
      //	'pageSize'=>2,
      //	'pageVar'=>'p',
      //),
      'pagination'=>false,
      'criteria'=>$criteria,
    ));
    $this->render('index',array(
      'dataProvider'=>$dataProvider,
    ));
    }
    

    要想limit有效,需要 'pagination'=>false,

  • 回复于 2012-06-11 11:25 举报

    同意楼上,pagination必须通过limit来分页,你再设置的,当然就得禁用了。

您需要登录后才可以回复。登录 | 立即注册