【问题标题】:How to maintain a variable in the url which is customized in cakephp?如何在cakephp中自定义的url中维护一个变量?
【发布时间】:2013-05-12 02:36:02
【问题描述】:

我在这里尝试做的是在所有分页 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));

AppController.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..

【问题讨论】:

    标签: cakephp pagination cakephp-2.0 cakephp-2.3


    【解决方案1】:

    您必须定义自定义路线:

    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

    【讨论】:

    • 您是否尝试过我的代码,请告诉我它对您有用吗?很高兴为您提供更多帮助...
    • 是的,我试过了。它会生成 URL Exams/take/42/page:2。提前致谢
    【解决方案2】:

    是的,您可以使用自定义路由来做到这一点。更多理解你可以查看 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]+'
            )
    );
    

    我不工作你可以参考link

    【讨论】:

    • 它没有返回我想要的 url。生成的 url 是 /exams/take/42/page:2。我想要的是这个,/examinations/take/42/items/2
    • 我已经更新了我的答案,请尝试让我知道。对你有用吗
    • 你有没有参考我在回答中给出的链接。这肯定会帮助您进行自定义路由。请仔细理解这样做
    • 我也应该包含这个代码吗? $this->Paginator->options(array ('url'=> array($city[0]['City']['url'], $this->params['id'])));跨度>
    • 欢迎您,@user2356747 您的问题解决了吗?如果我能帮助你,请接受我的回答?我将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 2010-11-06
    • 2011-02-02
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    相关资源
    最近更新 更多