0

我有一个动作调用index和另一个动作调用manage,两者都在PostsController. 我想为两者实现分页,并且我已经设置了这个类属性:

public $paginate = array(
    'limit' => 10,
    'order' => array(
        'Post.created' => 'desc'
    )
);

然后我在我的index动作中使用分页,如下所示:$this->set('posts', $this->paginate('Post'));

这会产生一个这样的 URL:http://dev/posts/page:2这很好。

但是,当我尝试manage像使用index( $this->set('posts', $this->paginate('Post'));) 一样在操作中使用分页时,视图上的分页链接会重定向到上面的 URL,而不是管理操作。

基本上,Cake 很困惑,因为我在同一个控制器中使用了两次分页,并且将两者都重定向到同一个 URL。如何确保manage操作的分页正常工作?

4

1 回答 1

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'));
    }
}

在视图文件中进行如下定义的更改。

索引.ctp

$options = array
(
    'url'=> array
    (
        'controller' => 'posts', 
        'action' => 'index'
     )
);
$paginator->options($options);

管理.ctp

$options = array
(
    'url'=> array
    (
        'controller' => 'posts', 
        'action' => 'manage'
     )
);
$paginator->options($options);

你完成了。

于 2013-01-18T04:06:37.123 回答