CakePHP分页订单结果

时间:2013-08-21 15:10:13

标签: php arrays cakephp pagination

[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
                (
                ) 
         )

我想根据主机的计数审查显示分页结果的顺序。我正在尝试使用虚拟字段的概念进行排序。

请帮我建议..

1 个答案:

答案 0 :(得分: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'
    )
);

鉴于我没有关于你的架构的完整细节,这就是我认为你可以使用但概念保持不变的内容