分页有无包含键 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';
这将扩展控制器针对特定操作的默认设置。
我正在使用 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';
这将扩展控制器针对特定操作的默认设置。