Yii2 ValidatePage在错误的页码上提供空输出

Yii2 ValidatePage在错误的页码上提供空输出,yii,yii2,yii2-basic-app,Yii,Yii2,Yii2 Basic App,我正在尝试使用我的yii2应用程序从表中获取产品列表,并将其作为json从前端发送到滚动的lazyload。我正在使用searchmodel类。现在,当数据结束时,将再次发送最后一页数据,即,如果我有100条记录,则对5以上页码的调用将重复发送与第4页相同的数据。我如何预防它。 PS:对读取文档时validatePage标志的用法感到困惑 这是我的控制器代码 public function actionAjaxIndex() { $searchModel = new productsS()

我正在尝试使用我的yii2应用程序从表中获取产品列表,并将其作为json从前端发送到滚动的lazyload。我正在使用searchmodel类。现在,当数据结束时,将再次发送最后一页数据,即,如果我有100条记录,则对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);
}
是否有人可以帮助您找到最好的解决方案。

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

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

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

谢谢。你不知道你救了我多少。非常感谢。你不知道你救了我多少。