查找CakePHP - 不同的查询条件

时间:2014-03-31 06:20:13

标签: cakephp

我有一个包含3个数据的简单搜索表单,现在并非所有数据都需要填写,有些可能会保持空白...

他们填写:

$this->Praca->find('all',array(
'conditions'=>array(
'kategoria'=>$wyniki['kategoria'][0],
'wojewodztwo'=>$wyniki['wojewodztwo'],
'poziom'=>$wyniki['poziom']
)));

现在,fe。当$ wyniki ['kategoria']为空时我必须:

$this->Praca->find('all',array(
'conditions'=>array(
'wojewodztwo'=>$wyniki['wojewodztwo'],
'poziom'=>$wyniki['poziom']
)));

对于许多可能性,我需要找到一种SMART方式,任何想法? :)

2 个答案:

答案 0 :(得分:2)

试试这个

$conditions = array();

if(!empty($wyniki['kategoria'][0])){
    $conditions = array('kategoria'=>$wyniki['kategoria'][0]);  
}

依旧...... ........

$this->Praca->find('all', compact('conditions'));

答案 1 :(得分:0)

在Fazel方式中,您需要为每个节点添加条件。但是下面的情况可以根据需要添加条件

$conditions = array();
$i=1;
foreach ($wyniki as $key=>$wyn){
    if(!empty($wyniki[$key])){
        $conditions[$i++] = array($key=>$wyn);  //or array($key=>end($wyn))
    }
}
$this->Praca->find('all',array('conditions'=>$conditions));