Yii2 ValidatePage 在错误的页码上给出空输出
Yii2 ValidatePage to give empty output on wrong page number
我正在尝试使用我的 yii2 应用程序从 table 中获取产品列表,并将其作为 json 发送到前端滚动时的延迟加载。我正在使用搜索模型 class。现在,当数据结束时,最后一页数据将再次发送,即,如果我有一百条记录,对页码 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);
}
有人可以提供最好的解决方案以继续进行吗?
您需要为您的数据提供商禁用 $validatePage
。如果页面超出范围,此设置将覆盖页面(因此,如果您有 4 页记录,但您请求第 5 页,分页将自动切换到第 4 页 - 超出范围的每一页都将显示最后一页的结果)。
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->pagination->validatePage = false;
我正在尝试使用我的 yii2 应用程序从 table 中获取产品列表,并将其作为 json 发送到前端滚动时的延迟加载。我正在使用搜索模型 class。现在,当数据结束时,最后一页数据将再次发送,即,如果我有一百条记录,对页码 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);
}
有人可以提供最好的解决方案以继续进行吗?
您需要为您的数据提供商禁用 $validatePage
。如果页面超出范围,此设置将覆盖页面(因此,如果您有 4 页记录,但您请求第 5 页,分页将自动切换到第 4 页 - 超出范围的每一页都将显示最后一页的结果)。
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->pagination->validatePage = false;