Paginate игнорирует условия

Когда я пытаюсь запустить этот код, он не изменит мой запрос, условие просто не выполняется:

$this->paginate = array(
    'conditions' => array(
        'campaign_id' => $this->request->data['Campaign']['campaign_id']
    )
);

$this->set('products', $this->Paginator->paginate());

запрос выглядит так

SELECT
    `Product`.`id`, `Product`.`campaign_id`, `Campaign`.`id`, `Campaign`.`title`, `Campaign`.`text`
FROM
    `db`.`products` AS `Product`
    LEFT JOIN
        `db`.`campaigns` AS `Campaign` ON (`Product`.`campaign_id` = `Campaign`.`id`)
WHERE
    1 = 1
LIMIT
    20

Что-то не так в моем синтаксисе?

(CakePHP 2.5.1)

1 ответ

Решение

Что означает @ndm - замените существующий код следующим:

$this->Paginator->settings['conditions'] = array(
    'Product.campaign_id' => $this->request->data['Campaign']['campaign_id']
)
$this->set('products', $this->Paginator->paginate());
Другие вопросы по тегам