cakephp与字段搜索通配符

时间:2014-10-24 10:36:40

标签: php cakephp

如何为所有记录设置带通配符的整数变量。原因是如果未设置id,我有时需要所有记录。我的通配符不起作用。我目前使用if条件来测试id是否已设置,并且有2个变量有4个组合。

LIKE选项对我来说也不起作用。

有没有办法为变量分配值以进行搜索,这等同于sql中的所有值,如?例如

        $tutorId='*'; 
        $paycycleId='*'; 

         $timesheet=$this->TimeSheet->find('all',array(
               'conditions'=> array ('TimeSheet.tutor_id'=>$tutorId,'TimeSheet.period_start_date'=>$paycycleId ),
               'order' => array('TimeSheet.invoice DESC')) );

1 个答案:

答案 0 :(得分:1)

如果您想要疯狂搜索或选择所有记录,请使用:

更新了更好的方式

//更好的方式 - >

$conditionsArr = array();

if(CONDITION_SATISFIED){
    $conditionsArr=array('TimeSheet.tutor_id'=>$tutorId,
                         'TimeSheet.period_start_date'=>$paycycleId 
                        );
}

$timesheet=$this->TimeSheet->find('all',
                                   array(
                                        'conditions'=> $conditionsArr,
                                        'order' => array('TimeSheet.invoice DESC')
                                        ) 
                                 );

//以前的方式 - >

$conditionsArrEmpty=array();
$conditionsArr=array('TimeSheet.tutor_id'=>$tutorId,
                     'TimeSheet.period_start_date'=>$paycycleId 
                    );

//With Wildcard (Select All records)
$timesheet=$this->TimeSheet->find('all',
                                   array(
                                        'conditions'=> $conditionsArrEmpty,
                                        'order' => array('TimeSheet.invoice DESC')
                                        ) 
                                 );

//使用Acutal条件

$timesheet=$this->TimeSheet->find('all',
                                   array(
                                        'conditions'=> $conditionsArr,
                                        'order' => array('TimeSheet.invoice DESC')
                                        ) 
                                 );