I had this:
public function recent_history($weeks = null) {
$this -> MapHistory -> recursive = 0;
$this->paginate = array (
'conditions' => array(
'OR' => array(
'MapHistory.date_returned >' => 'DATE_SUB( CURRENT_DATE(), INTERVAL 2 WEEK)',
'MapHistory.date_loaned >' => DATE_SUB( CURRENT_DATE(), INTERVAL 2 WEEK)'
)
),
'order' => array(
'MapHistory.date_returned' => 'ASC',
'MapHistory.date_loaned' => 'ASC'
),
'limit' => 50
);
$this -> set('mapHistories', $this -> paginate('MapHistory'));
}
But it was failing miserably because it was passing 'DATE_SUB( CURRENT_DATE(), INTERVAL 2 WEEK)' with the quotes and MYSQL wasn't executing the statements.
Following this => http://stackoverflow.com/questions/9076152/way-for-using-date-subcurdate-interval-2-day-condition-in-cakephp
I just removed the array key => value stuff and placed it all in one set of single quotes and it worked fine:
public function recent_history($weeks = null) {
$this -> MapHistory -> recursive = 0;
$this->paginate = array (
'conditions' => array(
'OR' => array(
'MapHistory.date_returned > DATE_SUB( CURRENT_DATE(), INTERVAL 2 WEEK)',
'MapHistory.date_loaned > DATE_SUB( CURRENT_DATE(), INTERVAL 2 WEEK)'
)
),
'order' => array(
'MapHistory.date_returned' => 'ASC',
'MapHistory.date_loaned' => 'ASC'
),
'limit' => 50
);
$this -> set('mapHistories', $this -> paginate('MapHistory'));
}

0 Comments