2013-03-14 66 views
0

在我的網站上,我需要以這種方式包含頁面的URL:/category/page4,因此傳遞給控制器​​的參數是單詞「page」之後的數字。我設法得到的URL以下列方式:使用此代碼/category/page/4(一個額外的斜槓):使用Zend_Controller_Router_Route解析URL中的參數

$router->addRoute('categoryPages', new Zend_Controller_Router_Route(
    '/category/page/:page', 
    array(
     'controller' => 'caegory', 
     'action' => 'index' 
    ), 
    array(
     'page' => '\d+' 
    ) 
)); 

我希望有網址,像/category/page4與此代碼的以下修改:

// Simply removed one slash 
'/category/page:page' 

但是,此代碼不會創建我需要的路由。我的錯誤是什麼?

回答

1

你不能用Zend_Controller_Router_Route來做到這一點,命名變量必須與路徑的url分隔符(斜槓)或開始/結束時相鄰。

相反,你可以做到這一點作爲一個正則表達式路線:

$router->addRoute('categoryPages', new Zend_Controller_Router_Route_Regex(
    'category/page(\d+)', 
    array(
     'controller' => 'caegory', 
     'action' => 'index' 
    ), 
    array(
     1 => 'page' 
    ), 
    'category/page%s' 
)); 
+0

非常感謝,這就是我一直在尋找。 – gvlasov 2013-03-14 14:00:33