Paginate有和没有包含关键CakePHP 2

时间:2016-08-09 07:31:50

标签: cakephp pagination cakephp-2.0

我正在使用CakePHP 2.x并希望在我的控制器中应用分页,但我希望它在一个包含密钥的情况下可用,而另一个包含没有包含密钥的情况。举个例子来看一下这个例子:

class BlogController extends AppController {
    public $name = "Blog";
    public $paginate = array(
    'Post'=>array(
            'limit'=>30, 
            'conditions'=>array('publish'=>1),
            ),
        );

    function just_posts() {
        // I want to paginate Post as it is
    }

    function posts_with_comments() {
        // I want paginate Post with 'contain'=>'comments'
    }
}

在我的实际案例中,这样做的目的是为了提高性能,减少查询时间。但我不知道如何实现这一点。 $ this-> paginate(...)只接受过滤记录的参数。有没有办法在控制器中为同一个模型提供两个分页器?

1 个答案:

答案 0 :(得分:1)

在执行分页之前,您应该能够在相关操作中修改控制器的paginate属性以包含contain: -

$this->paginate['Post']['contain'] = 'Comment';

这将扩展控制器的特定操作的默认值。