0

当我尝试运行此代码时,它不会更改我的查询,只是不采用条件:

$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)

4

1 回答 1

1

@ndm 的意思是用以下代码替换您现有的代码:

$this->Paginator->settings['conditions'] = array(
    'Product.campaign_id' => $this->request->data['Campaign']['campaign_id']
)
$this->set('products', $this->Paginator->paginate());
于 2014-07-04T01:17:15.857 回答