关于cakephp 2.0中按顺序分页
如何使用不同的模型处理订单。例如,我有一个CareseekerJob模型,它与城市、州、类别和用户模型关联(belongsTO)。我正在进行搜索,并希望按照价格对作业进行排序,但默认情况下,它会对作业表进行分页 请参阅代码:- $searchdata=array(); $conditioncat=''; $conditionsearch=''关于cakephp 2.0中按顺序分页,php,cakephp-2.0,Php,Cakephp 2.0,如何使用不同的模型处理订单。例如,我有一个CareseekerJob模型,它与城市、州、类别和用户模型关联(belongsTO)。我正在进行搜索,并希望按照价格对作业进行排序,但默认情况下,它会对作业表进行分页 请参阅代码:- $searchdata=array(); $conditioncat=''; $conditionsearch='' 如果(!empty($categories)&&$categories!='-1') { $conditioncat='CareseekerJob.cat
如果(!empty($categories)&&$categories!='-1') { $conditioncat='CareseekerJob.category_id IN('.$categories.'); } 如果($categories=='-1') { $conditionserv='(1=1)'; } $conditionserv=''; 如果(!empty($services)&&$services!='-1') {
$serviceses = explode(',',$services);
$servicename = '';
$con = '(1 = 1) AND '; $i='0';
$servicename = '';
foreach($serviceses as $key=>$value)
{ $i++;
$servicedata = $this->Service->find('first',array('conditions'=>array('Service.id'=>$value)));
$servicename = $servicedata['Service']['name'];
$con .= '(CareseekerJob.services LIKE "%'.$servicename.'%")' ;
if(count($serviceses) == $i){
$con .= ' ';
}else{
$con .= ' OR ';
}
}
$conditionserv = $con;
}
if($services == '-1')
{
$conditionserv = '(1 = 1) ';
}
$conditiontime = '';
if($timingess != '1')
{
$start = '';
$end = '';
if($timingess == 'morning')
{
$start = date('H:i:s',strtotime('00:00:00'));
$end = date('H:i:s',strtotime('11:59:00'));
}
elseif($timingess == 'afternoon')
{
$start = date('H:i:s',strtotime('11:59:00'));
$end = date('H:i:s',strtotime('16:00:00'));
}
elseif($timingess == 'evening')
{
$start = date('H:i:s',strtotime('16:00:00'));
$end = date('H:i:s',strtotime('20:00:00'));
}
elseif($timingess == 'night')
{
$start = date('H:i:s',strtotime('20:00:00'));
$end = date('H:i:s',strtotime('23:59:00'));
}
elseif($timingess == 'morning,afternoon')
{
$start = date('H:i:s',strtotime('00:00:00'));
$end = date('H:i:s',strtotime('16:00:00'));
}
elseif($timingess == 'morning,evening')
{
$start = date('H:i:s',strtotime('00:00:00'));
$end = date('H:i:s',strtotime('20:00:00'));
}
elseif($timingess == 'morning,afternoon,evening')
{
$start = date('H:i:s',strtotime('00:00:00'));
$end = date('H:i:s',strtotime('20:00:00'));
}
elseif($timingess == 'morning,afternoon,evening,night')
{
$start = date('H:i:s',strtotime('00:00:00'));
$end = date('H:i:s',strtotime('23:59:00'));
}
$conditiontime = "( TIME(CareseekerJob.starttime) >= TIME('".$start."') and TIME(CareseekerJob.starttime) <= TIME('".$end."') ) ";
}
if($timingess == '1')
{
$conditiontime = '(1 = 1) ';
}
$conditionsearch = "";
$conditionZip = "";
if($searchtext != 1)
{
if(is_numeric($searchtext))
{
$url1 = "https://maps.googleapis.com/maps/api/geocode/xml?address=" . $searchtext . "&sensor=false";
$details = simplexml_load_file($url1);
if ($details->status == 'OK') {
$sourceLat = $details->result->geometry->location->lat;
$sourceLon = $details->result->geometry->location->lng;
$radiusKm = 160.934;
$proximity = $this->Radiussearch->mathGeoProximity($sourceLat, $sourceLon, $radiusKm);
$latmin=min($proximity["latitudeMin"],$proximity["latitudeMax"]);
$latmax=max($proximity["latitudeMin"],$proximity["latitudeMax"]);
$lonmin=min($proximity["longitudeMin"],$proximity["longitudeMax"]);
$lonmax=max($proximity["longitudeMin"],$proximity["longitudeMax"]);
$conditionZip=array("CareseekerJob.lat BETWEEN ? AND ?" => array(number_format(min($proximity["latitudeMin"],$proximity["latitudeMax"]), 12, ".", ""), number_format(max($proximity["latitudeMin"],$proximity["latitudeMax"]), 12, ".", "")),"CareseekerJob.long BETWEEN ? AND ?"=> array(number_format(max($proximity["longitudeMin"],$proximity["longitudeMax"]), 12, ".", ""),number_format(min($proximity["longitudeMin"],$proximity["longitudeMax"]), 12, ".", "")));
}
$conditionsearch = '(1 = 1)';
}
else{
$conditionsearch= array('OR'=>array('CareseekerJob.title LIKE'=>'%'.$searchtext.'%','CareseekerJob.zipcode'=>$searchtext));
}
}else{
$conditionZip = '(1 = 1)';
$conditionsearch = '(1 = 1)';
}
if($sort =='recent' )
{
$condition= array('CareseekerJob.job_status'=>'jobactive','CareseekerJob.is_deleted'=>0,'CareseekerJob.status'=>'active');
$this->paginate = array(
'conditions' => array('AND'=>array($condition,$conditioncat,$conditiontime,$conditionserv,$conditionsearch,$conditionZip)),
'limit' => 4,
'order' => array(
'CareseekerJob.id' => 'desc'
)
);
$searchdata = $this->paginate('CareseekerJob');
}
elseif($sort =='distance' )
{
$condition= array('CareseekerJob.job_status'=>'jobactive','CareseekerJob.is_deleted'=>0,'CareseekerJob.status'=>'active');
$this->paginate = array(
'conditions' => array('AND'=>array($condition,$conditioncat,$conditiontime,$conditionserv,$conditionsearch,$conditionZip)),
'limit' => 4,
'order' => array(
'CareseekerJob.lat' => 'desc'
),
);
$searchdata = $this->paginate('CareseekerJob');
}elseif($sort =='price')
{
$condition= array('CareseekerJob.job_status'=>'jobactive','CareseekerJob.is_deleted'=>0,'CareseekerJob.status'=>'active');
$this->paginate = array(
'conditions' => array('AND'=>array($condition,$conditioncat,$conditiontime,$conditionserv,$conditionsearch,$conditionZip)),
'limit' => 4,
'order' => array(
'CareseekerJob.rate' => 'desc'
)
);
$searchdata = $this->paginate('CareseekerJob');
}
$services=explode(',',$services);
$servicename='';
$con='(1=1)和“;$i='0';
$servicename='';
foreach($key=>$value的服务)
{$i++;
$servicedata=$this->Service->find('first',array('conditions'=>array('Service.id'=>$value));
$servicename=$servicedata['Service']['name'];
$con.='(CareseekerJob.services,如“%”.$servicename.“%”);
如果(计数($serviceses)=$i){
$con.='';
}否则{
$con.='或';
}
}
$conditionserv=$con;
}
如果($services=='-1')
{
$conditionserv='(1=1)';
}
$conditiontime='';
如果($timinges!=“1”)
{
$start='';
$end='';
如果($timinges=='morning')
{
$start=date('H:i:s',strottime('00:00:00');
$end=日期('H:i:s',标准时间('11:59:00');
}
elseif($timingess=='午后')
{
$start=date('H:i:s',strottime('11:59:00');
$end=日期('H:i:s',标准时间('16:00:00');
}
elseif($timinges==‘晚上’)
{
$start=date('H:i:s',strottime('16:00:00');
$end=日期('H:i:s',标准时间('20:00:00');
}
elseif($timingess=='night')
{
$start=日期('H:i:s',标准时间('20:00:00');
$end=日期('H:i:s',标准时间('23:59:00');
}
elseif($timinges==‘上午,下午’)
{
$start=date('H:i:s',strottime('00:00:00');
$end=日期('H:i:s',标准时间('16:00:00');
}
elseif($timinges==‘早,晚’)
{
$start=date('H:i:s',strottime('00:00:00');
$end=日期('H:i:s',标准时间('20:00:00');
}
elseif($Timinges==‘上午、下午、晚上’)
{
$start=date('H:i:s',strottime('00:00:00');
$end=日期('H:i:s',标准时间('20:00:00');
}
elseif($Timinges==‘早上、下午、晚上、晚上’)
{
$start=date('H:i:s',strottime('00:00:00');
$end=日期('H:i:s',标准时间('23:59:00');
}
$conditiontime=“(TIME(CareseekerJob.starttime)>=TIME(“$start.”)和TIME(CareseekerJob.starttime)一些代码确实会有帮助……但是rate
是求职者表中的一个字段还是另一个表中的一个字段?是,rate是求职者表中的一个字段