是否有可能在同一个控制器中使用多个$paginate
变量?
我的问题是我在链接和标记之间有一个hasAndBelongsToMany-Relationship。 我已经定制了分页选项,以便它与habtm一起使用:
public $paginate = array(
'limit' => 25,
'joins' => array(
array(
'table' => 'links_tags',
'type' => 'inner',
'alias' => 'LinkTag',
'conditions' => array(
'Link.id = LinkTag.link_id'
)
)
));
它工作正常,但还有另一个应该也是分页的动作。在此操作中,没有可用的标记,因此每个链接都经常显示,因为该链接的links_tags表中有一个条目。
解决此问题的最简单方法是使用第二个$paginate
变量,但我没有找到解决方案,我该怎么做。
答案 0 :(得分:1)
您可以在设置$ paginate变量后以各种方式自定义您的paginate方法,例如Cake Cookbook中的示例:
function list_recipes() {
$this->paginate = array(
'conditions' => array('Recipe.title LIKE' => 'a%'),
'limit' => 10
);
$data = $this->paginate('Recipe');
$this->set(compact('data'));
);
我还没有对它进行过测试,但我认为你可以在$ this-> paginate调用而不是$ paginate变量中放置像你的join这样的东西,这需要在一个动作之间变化。 。嗯,我必须看看这是否有效 - 对我来说非常有用,知道如何做这种事情,以备日后使用!
答案 1 :(得分:1)
根据Cake Book分页页面(HERE),您可以为不同的模型设置不同的分页变量(都在同一个控制器中):
实际上,您可以定义多个 一组分页默认值 控制器,你只需要命名 您想要的模型之后的数组 配置:
class RecipesController extends AppController {
var $paginate = array(
'Recipe' => array (...),
'Author' => array (...)
);
}