查找CakePHP-不同的查询条件

查找CakePHP-不同的查询条件,cakephp,Cakephp,我有一个简单的搜索表,有3个数据,现在不是所有的数据都需要填写,有些可能会保持空白 当他们填满时: $this->Praca->find('all',array( 'conditions'=>array( 'kategoria'=>$wyniki['kategoria'][0], 'wojewodztwo'=>$wyniki['wojewodztwo'], 'poziom'=>$wyniki['poziom'] ))); 现在,fe。当$wyniki['ka

我有一个简单的搜索表,有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']
)));
对于许多可能性,我需要找到一个聪明的方法,有什么想法吗?:)

试试这个

$conditions = array();

if(!empty($wyniki['kategoria'][0])){
    $conditions = array('kategoria'=>$wyniki['kategoria'][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));
$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));