我正在使用cakephp进行搜索功能。搜索基于特定范围,特定类别,创建日期等之间的参数数量。大多数参数不是必需的。如何在单个where子句(非强制字段)中指定这些条件。值的数量可能会根据不同类别的产品而变化。
答案 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作为参数集所需的所有情况来完成。