CakePHP paginate дважды - PullRequest
       14

CakePHP paginate дважды

0 голосов
/ 03 июня 2011

У меня есть вызов paginate, как в $users = $this->paginate('User');.

Но затем я делаю вызов, чтобы обновить массив $users какими-то вещами (сторонние).Как мне заставить paginate снова вызывать себя?

    $resultsPerPage = 10;

    $this->paginate = array
    (
        'conditions' => array
        (
            'User.name' => $query
        ),
        'limit' => $resultsPerPage
    );

Затем я делаю: $users = $this->paginate('User');

Затем я беру эти user_ids из этой 1-й возвращенной страницы и передаю их в другую систему(Я делаю вызов API и не имею доступа к базе данных этой системы).Некоторые данные массива $users обновляются, и $this->save() выполняется для каждого экземпляра, если что-то обновляется (также внешний код).Но это делает массив $users устаревшим.Если я сделаю еще один вызов для тех же данных, который должен обновить его?Но paginate не делает еще один вызов базы данных?

1 Ответ

1 голос
/ 11 июля 2011

то, что вы делаете, звучит так, как будто вы делаете это неправильно.вызовы API не должны выполняться в контроллере.это для модели / источника данных, чтобы сделать.однако это один из способов сделать то, что вы хотите.

после первого вызова выполните что-то вроде следующего:

$this->params['named']['page'] = isset($this->params['named']['page']) ? $this->params['named']['page'] + 1 : 2;

, что говорит об увеличении номера страницы, если она установлена,или сделайте это страницей 2. это заставит paginator думать, что вы находитесь на следующей странице.затем вы можете вызвать $ this-> paginate () снова, чтобы получить следующий набор.

торт использует страницу в параметрах для установки предела x, y.

...