2013-08-21 4 views
0
[0] => Array 
     (
      [Host] => Array 
       (
        [id] => 2821 
        [user_id] => 7090 
      ) 
      [Review] => Array 
       (
         [0] => Array 
          (
           [id] => 852 
           [host_id] => 2821 
           [user_id] => 6592 
          ) 
         [1] => Array 
          (
           [id] => 853 
           [host_id] => 2821 
           [user_id] => 6532 
          ) 
     ) 
[1] => Array 
     (
      [Host] => Array 
       (
        [id] => 2221 
        [user_id] => 7390 
      ) 
      [Review] => Array 
       (
       ) 
     ) 

Я хочу показать порядок результатов разбивки на страницы на основе подсчета количества хостов. Я пытаюсь использовать концепцию виртуальных полей для сортировки.CakePHP Pagination Order Результат

Пожалуйста, помогите мне предложить это ..

+1

«Я пытаюсь использовать концепцию виртуальных полей sort. ", так что вы пробовали? – bowlerae

+0

Я использую, чтобы добавить виртуальное поле в обзорную модель ..... var $ virtualFields = array ( 'rw_count' => 'COUNT (Review.host_id)' ); – alex

+0

и что вы пробовали, чтобы выполнить сортировку? (это то, что я имел в виду ранее, жаль, что я был неясен) – bowlerae

ответ

1

Cakephp websie См

Реализация virtualFields имеет несколько ограничений. Сначала вы не можете использовать virtualFields для связанных моделей для условий, порядка, или массивов полей.

Однако обходной путь что-то вдоль линий с:

обзор модели:

public $virtualFields = array('rw_count' => COUNT(Review.host_id)); 

хост Модель:

class Host extends Model{ 
    public function __construct($id = false, $table = null, $ds = null) { 
     parent::__construct($id, $table, $ds); 
     $this->virtualFields['rw_count'] = $this->Review->virtualFields['rw_count']; 
    } 
} 

Хосты Контроллер

public $paginate = array(
    'limit' => 25, 
    'order' => array(
     'rw_count' => 'desc' 
    ) 
); 

Учитывая, что у меня нет полной информации о вашей схеме, это то, что я предполагаю, что вы могли бы использовать, но понятия остаются теми же