我正在尝试用我的yii2应用程序从一个表中获取一个产品列表,并将其作为json发送到accross,以便从前端进行lazyload on scroll。我使用的是searchmodel类。现在当数据结束时,最后一页的数据会被再次发送,也就是说,如果我有一百条记录,对5以上页码的调用会重复发送与4号相同的数据。PS:在阅读文档时对validatePage标志的用法感到困惑。
下面是我的控制器代码。
public function actionAjaxIndex()
{
$searchModel = new productsS();
$response = (object) ['status' => 0];
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$response->status = 1;
$response->data = array();
foreach($dataProvider->models as $row){
foreach($row as $key=>$value){
$customerDetail[$key] = $value;
}
array_push($response->data, $customerDetail);
}
return json_encode($response);
}
有人能帮着提出最好的解决方案吗。
1条答案
按热度按时间xj3cbfub1#
您需要为您的数据提供程序禁用
$validatePage
。此设置将覆盖超出范围的页面(因此,如果您有4页记录,但您请求第5页,分页将自动切换到第4页-超出范围的每一页都将显示最后一页的结果)。