Yii2数据提供者未加载GET参数

问题描述 投票:0回答:1

我正在尝试为Yii2 listView设置分页。我正在GET请求中发送'page'参数,但0总是加载到dataprovider->pagination->page属性中。调试时,我可以看到GET页面参数设置正确,当尝试将pageSize设置为'per-page' GET参数时,它也可以正常工作并加载。

我的控制器代码:

$searchModel = new WinerySearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);   
$dataProvider->pagination->pageSize = $this->pageSize;


if (\Yii::$app->request->isAjax) {

$displayedItems = $dataProvider->pagination->pageSize * ($dataProvider->pagination->page) + $dataProvider->count;

0总是由$dataProvider->pagination->page返回

Ajax请求代码:

var pageNumber = 1;
$.ajax({
        method: 'GET',
        url: url+"?page="+pageNumber,
        success: function(data, textStatus, request){
php yii2
1个回答
0
投票

插入

<?php var_dump($dataProvider->pagination->page); ?>

在索引页面上网格或列表之一的底部。如果您手动刷新页面,则var_dump始终返回小于页面编号的值。

Consider perhaps this code:

public function getPage($recalculate = false)
{
    if ($this->_page === null || $recalculate) {
        $page = (int) $this->getQueryParam($this->pageParam, 1) - 1;
        $this->setPage($page, true);
    }

    return $this->_page;
}

Or perhaps this code:

$dataProvider->pagination = [
        'pageSize'=>$pageSize,
        'page'=>$pageNumber-1,
];
© www.soinside.com 2019 - 2024. All rights reserved.