【问题标题】:How to get page number in YiiYii如何获取页码
【发布时间】:2013-05-14 17:36:30
【问题描述】:

我正在使用 Yii 显示一个列表页面,它通过 zii.widgets.CListView 自动显示在几个页面中。

当用户点击下一页时,url 不会改变。但我需要知道用户正在查看哪个页面。

如何在 Yii 中获取页码?

【问题讨论】:

    标签: yii


    【解决方案1】:

    在 CViewList 上禁用 Ajax,使用 'ajaxUpdate'=>false

    由于 ajax 调用,您不会直接获得当前页码。如果从 CListView 禁用 ajax,则可以在页面加载时获取当前页码。

    我的示例控制器

         <?php
         $dataProvider = new CActiveDataProvider('MyModel', array('pagination' => array('pageSize' => 3)));
         $this->render('MyViewPage', array('dataProvider' => $dataProvider));
         ?>
    

    现在查看我的视图

        <?php
        $this->widget('zii.widgets.grid.CGridView', 
            array(
                    'dataProvider' => $dataProvider,
                    'ajaxUpdate'=>false
                ));
    
        echo "Current Page Number is: ".(int)($dataProvider->pagination->getCurrentPage()+1);
        ?>
    

    【讨论】:

      【解决方案2】:

      您从数据提供者的CPagination 对象中获取当前页面:

      $provider = $model->search();
      $page = $provider->pagination->currentPage;
      

      【讨论】:

      • 可以得到page参数,但是总是0,怎么回事?
      【解决方案3】:

      设置pagination的从零开始的currentPage属性

      ...
      'pagination'=>array(
        'pageSize'=>2,
        'currentPage'=>1,
      ),
      ...
      

      currentPage 返回当前页面从零开始的索引。

      尝试在查看页面中获取当前页码,如$cuurentPage=&gt;$pages-&gt;currentPage+1,

      【讨论】:

      • 感谢您的回答,但我不清楚您的观点。我的问题应该是,有没有类似 CPagination->getPageNum() 来获取当前页码?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      相关资源
      最近更新 更多