Yii2 ValidatePage для выдачи пустого вывода на неправильный номер страницы - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь получить список продуктов из таблицы, используя мое приложение yii2, и отправить его как json, чтобы лениво загрузить прокрутку из внешнего интерфейса. Я использую класс 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);
}

Может кто-нибудь помочь с наилучшим возможным решением для go впереди .

1 Ответ

2 голосов
/ 17 января 2020

Вам необходимо отключить $validatePage для вашего поставщика данных. Этот параметр перезаписывает страницу, если она выходит за пределы диапазона (поэтому, если у вас есть 4 страницы записей, но вы запрашиваете 5-ю страницу, разбиение на страницы автоматически переключится на 4-ю страницу - каждая страница вне диапазона будет отображать результаты для последней страницы).

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