index
中有一个名为manage
的动作和另一个名为PostsController
的动作。我想为两者实现分页,并且我已经设置了这个类属性:
public $paginate = array(
'limit' => 10,
'order' => array(
'Post.created' => 'desc'
)
);
然后我在我的index
操作中使用了分页,如下所示:$this->set('posts', $this->paginate('Post'));
这会生成如下网址:http://dev/posts/page:2
,这很好。
但是,当我尝试在manage
操作中使用分页时,就像我使用index
($this->set('posts', $this->paginate('Post'));
)一样,我的视图中的分页链接会重定向到上面的URL,而不是而不是管理行动。
基本上,Cake很混乱,因为我在同一个控制器中使用了两次分页,并且它们都重定向到同一个URL。如何确保manage
操作的分页正常工作?
答案 0 :(得分:2)
执行以下操作。
<?php
class PostsController extends AppController
{
var $name = 'Posts';
public $paginate = array
(
'limit' => 10,
'order' => array
(
'Post.created' => 'desc'
)
);
function index()
{
$this->Post->recursive = 0;
$this->set('posts', $this->paginate('Post'));
}
function manage()
{
$this->Post->recursive = 0;
$this->set('posts', $this->paginate('Post'));
}
}
在视图文件中进行如下定义的更改。
<强> index.ctp 强>
$options = array
(
'url'=> array
(
'controller' => 'posts',
'action' => 'index'
)
);
$paginator->options($options);
<强> manage.ctp 强>
$options = array
(
'url'=> array
(
'controller' => 'posts',
'action' => 'manage'
)
);
$paginator->options($options);
你已经完成了。