如何在cakephp中自定义的url中维护变量?

时间:2013-05-17 02:05:14

标签: cakephp pagination cakephp-2.0 cakephp-2.3

我试图在这里做的是在所有分页网址中保持变量42。我希望我的网址可以从此更改

/exams/take/42/page:2

到这个

/exams/take/42/items/2

同样,数字42是变量......而数字2是页码。谢谢。

更新:

routes.php
 Router::connect('/examinations/take/:id/page/:page', 
array('controller' => 'examinations', 'action' => 'take'),
array(
    'pass' => array('id', 'page'),
    'id' => '[0-9]+',
    'page' => '[0-9]+'
    )
);
视图中的

/采取

$this->Paginator->options(array('url' => $this->passedArgs));

AppController.php

public function beforeFilter(){
    if (isset($this->request->params['page'])) {
        $this->request->params['named']['page'] =                           $this->request->params['page']; 
    }
}

香港专业教育学院试过这个..但生成的网址是相同的,/ examinations / take / 42 / page:2,当我点击下一个和prev链接..

2 个答案:

答案 0 :(得分:2)

您需要定义自定义路线:

http://book.cakephp.org/2.0/en/development/routing.html

示例如下:

    Router::connect(
      '/exams/take/:id/items/:number',
      array('controller' => 'exams', 'action' => 'take'),
      array('pass' => array('id', 'number'))
    );

此外,您可以从以下网址获取更多信息,请尝试以下方法: http://www.sakic.net/blog/changing-cakephp-pagination-urls

答案 1 :(得分:1)

是的,你可以使用自定义路由来完成它。对于更多的动画,你可以看到cakephp手册来管理分页中的自定义路由

http://book.cakephp.org/2.0/en/development/routing.html

以下将是您的

e.g。

并添加此路线:

Router::connect('/:id/page/:page', 
    array('controller' => 'examinations', 'action' => 'take'),
    array(
        'pass' => array('id', 'page'),
        'id' => '[0-9]+',
        'page' => '[0-9]+'
        )
);

我不行,你可以参考link