1

我在这里尝试做的是在所有分页 url 中维护变量 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));

应用控制器.php

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

我试过这个..但是当我点击下一个和上一个链接时,生成的 url 是相同的,/examinations/take/42/page:2..

4

2 回答 2

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/chang-cakephp-pagination-urls

于 2013-05-17T05:57:53.053 回答
1

是的,您可以使用自定义路由来做到这一点。对于更多的理解,你可以看到 cakephp 手册来管理分页中的自定义路由

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

下面将是你的

例如

并通过添加这条路线:

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

我不工作你可以参考链接

于 2013-05-17T03:54:35.707 回答