分页有无包含键 CakePHP 2

Paginate With and Without Contain Key CakePHP 2

我正在使用 CakePHP 2.x 并且想在我的控制器中应用分页,但我希望它在一种情况下可以使用 contain 键,而另一种情况下没有 contain 键。例如考虑这个例子:

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(...) 将只接受一个参数来过滤记录。有没有办法让两个分页器可用于控制器中的同一模型?

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

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

这将扩展控制器针对特定操作的默认设置。