php - Yii2 dataprovider 未加载 GET 参数
问题描述
我正在尝试为 Yii2 listView 设置分页。我'page'
在 GET 请求中发送参数,但总是将 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 var_dump($dataProvider->pagination->page); ?>
<?php var_dump($dataProvider->pagination); ?>
在索引页面上的一个网格或列表的底部。如果手动刷新页面,var_dump 总是返回比页码小一的值。我使用了 1 的 pageSize。我还注意到它可以保持休眠状态,即。即使通过分页按钮而不是通过刷新来更改页面,也可以根据其当前值进行更改。
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;
}
$dataProvider->pagination = [
'pageSize'=>$pageSize,
'page'=>$pageNumber-1,
];
推荐阅读
- javascript - 当我们使用fire base auth注册时如何添加用户名
- javascript - Javascript - 当服务器发送大响应时,WebSocket 客户端未收到 onmessage 事件
- swift - 关于 Swift 中带有 GCD 的 UDP 套接字的“表达式类型不明确”错误(DispatchQueue)
- vb.net - bc30526 属性单元格是“只读”DataGridView1 到 excel
- google-sheets - 如何将文本连接到 Google 表格中的过滤列?
- git - Git rebase:我必须先有一个干净的工作目录吗?
- python - 使用条件计算数据集属性上的值
- python - 使用子进程时如何留在虚拟环境中?
- postman - 如何使用邮递员获取here-api的访问令牌
- python - 在 python 的多服务系统中使用日志的最佳实践是什么?