我正在使用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(...)只接受过滤记录的参数。有没有办法在控制器中为同一个模型提供两个分页器?
答案 0 :(得分:1)
在执行分页之前,您应该能够在相关操作中修改控制器的paginate
属性以包含contain
: -
$this->paginate['Post']['contain'] = 'Comment';
这将扩展控制器的特定操作的默认值。