Обратите внимание, что виртуальные поля по умолчанию игнорируются при разбивке на страницы.
См. "Управление полями, используемыми для упорядочивания" в документации Разбивка на торты 2.0 .
Пример:
$this->MyModel->virtualFields['count'] = 0;
$this->Paginator->settings = array(
'fields' => 'COUNT(id) AS MyModel__count',
'group' => ('MyModel.group_id'),
'order' => array('MyModel__count' => 'DESC'),
);
// IMPORTANT: pass sortable fields including the virtual field as 3rd parameter:
$log = $this->Paginator->paginate('MyModel', null, array('MyModel__count', 'id'));