CakePHP Query中的动态条件

时间:2014-03-14 05:12:20

标签: php

我正在使用cakephp进行搜索功能。搜索基于特定范围,特定类别,创建日期等之间的参数数量。大多数参数不是必需的。如何在单个where子句(非强制字段)中指定这些条件。值的数量可能会根据不同类别的产品而变化。

1 个答案:

答案 0 :(得分:0)

由于条件作为数组传递,您可以动态构建此数组(但是您决定哪些字段是条件的一部分),然后使用该变量作为条件。

E.g。这个查询

$cheapJacuzzis = $this->Item->find(
    'all',
    array(
        'conditions' => array(
            'Item.price <' => 300,
            'Item.category' => 'Jacuzzi'
        ),
        'order' => 'Item.price ASC'
    )
);

变为

$conditions = array(
    'Item.price <' => 300,
    'Item.category' => 'Jacuzzi'
);

$cheapJacuzzis = $this->Item->find(
    'all',
    array(
        'conditions' => $conditions,
        'order' => 'Item.price ASC'
    )
);

这可以通过动态构建数组cakephp作为参数集所需的所有情况来完成。