如何使用Yii2 ActiveDataProvider设置当前页面?

时间:2014-09-16 06:18:41

标签: yii2

如何使用Yii2 ActiveDataProvider设置当前页面 Yii 1.1以上方法:

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

3 个答案:

答案 0 :(得分:4)

在Yii2中,您可以使用page obj的属性pagination,如here所述:

在您的DataProvider集

$dataProvider = new ActiveDataProvider([
        'query' => Product::find(),
        'pagination' => [
            'pageSize' => 2,
            'page' => 0
        ]
    ]);

$model = $dataProvider->getModels(); //Models in page 0
$dataProvider->pagination->page = 1; //Set page 1
$model = $dataProvider->refresh(); //Refresh models
$model = $dataProvider->getModels(); //Models in page 1

享受

答案 1 :(得分:0)

 $dataProvider = new ActiveDataProvider([
            'query' => $query,
            'pagination' => [
                'pageSize' => 10,
            ],
        ]);

答案 2 :(得分:0)

我认为最简单(也是愚蠢的方式)就是在将所有内容加载到模型之前(

$_GET['page'] = $_GET['page'] ? $_GET['page'] : 2;

这将由活动日期提供程序获取并使用第2页作为默认页面。

或者您可以通过直接链接到第二页直接将列表转到第二页

echo Url::to(['post/index', 'page' => 2])