分页和排序 - 插件不工作 - CakePHP 2.0

时间:2012-08-21 02:09:05

标签: cakephp sorting plugins pagination cakephp-2.0

我创建了一个名为movies的插件,我使用了自定义路由。 我使用分页限制为'5'。

第一页很好,但是当我点击下一个或数字时。那些东西不起作用。

网址:something.com/movieslist/2

my Plugin/Movies/Config/routes.php

Router::connect('/movieslist', array('plugin' => 'Movies', 'controller' => 'Movies', 'action' => 'index'));
Router::connect('/movieslist/:page', array('plugin' => 'Movies', 'controller' => 'Movies', 'action' => 'index'));

my action code: Plugin/Movies/Controller/MoviesController.php

public function index() {
        $this->Movie->recursive = 0;
        $this->paginate = array('limit'=>5);
        $this->set('movies', $this->paginate());
    }

my view file code: Plugin/Movies/View/Movies/index.ctp

来自cakebake控制台的同一个。这里没有变化。

即使排序也行不通:( 我在许多地方分析了我的问题:(

我以前在链接中遇到错误,并在看到此页面后修复了此问题: CakePHP custom route pagination

链接已修复,但链接不起作用。请不要投票,我很长时间都在挣扎。

我正在使用cakephp 2.0版本。

1 个答案:

答案 0 :(得分:0)

作为第一步,我将交换路由器规则的顺序,因为cakephp在找到第一个匹配后停止。虽然“/ movieslist /:page”将匹配带有页面的URL,但它仅对命名参数page执行此操作。如果没有它,“/ movielist / 2”形式的URL可能会被解释为带有正常参数“2”的“/ movielist”链接,因此第一个路由器规则会触发。

如果这不起作用,您可以随时手动设置命名的page参数。 paginate只是看看它是否已设置,但不关心cakephp是否自动从网址中找出它或者你自己是否这样做。

public function index($myPage=1) {
    $this->Movie->recursive = 0;
    $this->paginate = array('limit'=>5);
    $this->params["page"] = $myPage;
    $this->set('movies', $this->paginate());
}