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

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

请帮我建议这个..

4

1 回答 1

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'
    )
);

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

于 2013-08-21T16:58:01.563 回答