簡體   English   中英

如何在CakePhp中設置自定義URL

[英]How to set Custom URL in CakePhp

我想定義一個URL,如下所示:

http:// localhost / bekzcart / books / list?cid = 1&type = grid&page = 1

如何為該類型的url創建自定義路由,我的路由器代碼根本不起作用

Router::connect('/books/list?cid=:cid&type=:type&page=:page', array('controller' => 'books', 'action' => 'list'));

參數cid,type和page為空,但是當我更改為

Router::connect('/books/list?:cid&:type&:page', array('controller' => 'books', 'action' => 'list'));

它工作正常,參數cid,type和page現在存在。

注意:我的蛋糕版本是1.3

提前致謝,

布賴恩

我認為您不需要這些路由,如果您需要獲取這些url參數,則可以從$this->params['url']['param_name']

如果您希望參數在方法中以$ {param_name}的形式隨時可用,則可以使用pass告訴路由通過這些參數,如下所示:

http://book.cakephp.org/view/949/Passing-parameters-to-action

// some_controller.php
function view($articleID = null, $slug = null) {
    // some code here...
}

// routes.php
Router::connect(
    // E.g. /blog/3-CakePHP_Rocks
    '/blog/:id-:slug',
    array('controller' => 'blog', 'action' => 'view'),
    array(
        // order matters since this will simply map ":id" to $articleID in your action
        'pass' => array('id', 'slug'),
        'id' => '[0-9]+'
    )
);

因此,在您的情況下,將類似於:(未測試)

Router::connect('/books/list?cid=:cid&type=:type&page=:page', 
   array('controller' => 'books', 'action' => 'list'),
   array(
      'pass' => array('cid', 'type', 'page')
   )
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM