Yii2 ValidatePage在错误的页码上给予空输出

kg7wmglp  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(98)

我正在尝试用我的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);
}

有人能帮着提出最好的解决方案吗。

xj3cbfub

xj3cbfub1#

您需要为您的数据提供程序禁用$validatePage。此设置将覆盖超出范围的页面(因此,如果您有4页记录,但您请求第5页,分页将自动切换到第4页-超出范围的每一页都将显示最后一页的结果)。

$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->pagination->validatePage = false;

相关问题