Note that there are some explanatory texts on larger screens.

plurals
  1. PORegarding pagination in cakephp 2.0 with order by
    primarykey
    data
    text
    <p>How to deal with order by with different models.For e.g. i have an CareseekerJob model which is in association(belongsTO) with city,state,category and user model.I am doing searching and want to sort the job with price but it is taking by default paging of job table.</p> <p>Please refer the code:- $searchdata = array(); $conditioncat = ''; $conditionsearch = '';<br> if(!empty($categories) &amp;&amp; $categories!='-1') { $conditioncat = 'CareseekerJob.category_id IN ('.$categories.') '; } if($categories == '-1') { $conditionserv = '(1 = 1) '; } $conditionserv = ''; if(!empty($services) &amp;&amp; $services!='-1') {</p> <pre><code> $serviceses = explode(',',$services); $servicename = ''; $con = '(1 = 1) AND '; $i='0'; $servicename = ''; foreach($serviceses as $key=&gt;$value) { $i++; $servicedata = $this-&gt;Service-&gt;find('first',array('conditions'=&gt;array('Service.id'=&gt;$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) &gt;= TIME('".$start."') and TIME(CareseekerJob.starttime) &lt;= 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 . "&amp;sensor=false"; $details = simplexml_load_file($url1); if ($details-&gt;status == 'OK') { $sourceLat = $details-&gt;result-&gt;geometry-&gt;location-&gt;lat; $sourceLon = $details-&gt;result-&gt;geometry-&gt;location-&gt;lng; $radiusKm = 160.934; $proximity = $this-&gt;Radiussearch-&gt;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 ?" =&gt; array(number_format(min($proximity["latitudeMin"],$proximity["latitudeMax"]), 12, ".", ""), number_format(max($proximity["latitudeMin"],$proximity["latitudeMax"]), 12, ".", "")),"CareseekerJob.long BETWEEN ? AND ?"=&gt; array(number_format(max($proximity["longitudeMin"],$proximity["longitudeMax"]), 12, ".", ""),number_format(min($proximity["longitudeMin"],$proximity["longitudeMax"]), 12, ".", ""))); } $conditionsearch = '(1 = 1)'; } else{ $conditionsearch= array('OR'=&gt;array('CareseekerJob.title LIKE'=&gt;'%'.$searchtext.'%','CareseekerJob.zipcode'=&gt;$searchtext)); } }else{ $conditionZip = '(1 = 1)'; $conditionsearch = '(1 = 1)'; } if($sort =='recent' ) { $condition= array('CareseekerJob.job_status'=&gt;'jobactive','CareseekerJob.is_deleted'=&gt;0,'CareseekerJob.status'=&gt;'active'); $this-&gt;paginate = array( 'conditions' =&gt; array('AND'=&gt;array($condition,$conditioncat,$conditiontime,$conditionserv,$conditionsearch,$conditionZip)), 'limit' =&gt; 4, 'order' =&gt; array( 'CareseekerJob.id' =&gt; 'desc' ) ); $searchdata = $this-&gt;paginate('CareseekerJob'); } elseif($sort =='distance' ) { $condition= array('CareseekerJob.job_status'=&gt;'jobactive','CareseekerJob.is_deleted'=&gt;0,'CareseekerJob.status'=&gt;'active'); $this-&gt;paginate = array( 'conditions' =&gt; array('AND'=&gt;array($condition,$conditioncat,$conditiontime,$conditionserv,$conditionsearch,$conditionZip)), 'limit' =&gt; 4, 'order' =&gt; array( 'CareseekerJob.lat' =&gt; 'desc' ), ); $searchdata = $this-&gt;paginate('CareseekerJob'); }elseif($sort =='price') { $condition= array('CareseekerJob.job_status'=&gt;'jobactive','CareseekerJob.is_deleted'=&gt;0,'CareseekerJob.status'=&gt;'active'); $this-&gt;paginate = array( 'conditions' =&gt; array('AND'=&gt;array($condition,$conditioncat,$conditiontime,$conditionserv,$conditionsearch,$conditionZip)), 'limit' =&gt; 4, 'order' =&gt; array( 'CareseekerJob.rate' =&gt; 'desc' ) ); $searchdata = $this-&gt;paginate('CareseekerJob'); } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload