$this->WebDirectory->find('all', array('conditions' => array('verified' => 0),'joins' => array(
array(
'table' => 'seo_site_statuses',
'type' => 'left',
'alias' => 't1',
'conditions' => array('WebDirectory.id' => ' t1.web_directory_id', 't1.site_id =' . $id)))));
хорошо, вот преобразованный запрос, который я смог выяснить ... может быть, еще один пример поможет кому-то еще выяснить, как это сделать ...
Однако я в конечном итоге использовалпрямой запрос, потому что приведенная выше находка требовала слишком много памяти и времени для рекурсии, как указано в ответе выше.
function paginate($id, $recursive = null, $extra = array(), $limit = 50, $page = 1){
$page = ($page * $limit) - $limit;
if(!empty($extra)){
$OrderBy = "ORDER BY ";
foreach ($extra as $key => $value) {
$OrderBy .= $key . " " . $value;
}
}else{
$OrderBy = "ORDER BY t2.page_rank DESC";
}
return $this->query('SELECT * FROM `seo_web_directories` as t2
LEFT JOIN (SELECT * FROM `seo_site_statuses` WHERE site_id = ' . $id['Site.id'] . ') as t1
ON `t2`.id = t1.web_directory_id WHERE t2.`verified` = 0 ' . $OrderBy . ' LIMIT ' . $page . ', ' . $limit);
// return $this->WebDirectory->find('all', compact('conditions', 'joins', 'limit', 'page', 'recursive'));
}
function paginateCount($conditions = null, $recursive = 0, $extra = array())
{
return $this->WebDirectory->find('count', array('conditions' => array('verified' => 0)));
}