我有一个包含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方式,任何想法? :)
答案 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));