2010-04-17 36 views
0

我一直在搜索,我似乎無法找到任何解釋好ZF路由器的使用。我已經閱讀了網站上的文檔,這似乎只是談論重新路由。Zend框架路由器獲取/模塊/價值/控制器/行動

我試圖使格式: /模塊/值/控制器/動作給/模塊/控制器/動作傳遞值作爲參數

例如 /store/johnsmithbigsale/home/newstuff將路由到/ store/home/newstuff傳遞給johnsmithbigsale作爲具有隱藏命名空間的參數的值,例如, STORENAME。

一些幫助將是偉大的!

回答

2

您可以使用Zend_Controller_Router_Route將您的url部件映射到可通過$ this - > _ getParam('varName')在控制器中使用的模塊,控制器,動作和參數。您可以在application.ini文件或應用程序引導程序中定義這些路由。

// custom city route 
$route = new Zend_Controller_Router_Route(
    'cities/:city', 
    array(
     'controller' => 'city', 
     'action'  => 'view' 
    ) 
); 
$this->addRoute('city', $route); 

// custom buy widgets route 
$route = new Zend_Controller_Router_Route_Regex(
    'buy_(.+)_widgets/([0-9]+)(.*)', 
    array(
     'controller' => 'widgets', 
     'action'  => 'view' 
    ), 
    array(
     1 => 'nothing', 
     2 => 'widget_id', 
     3 => 'vars' 
    ) 
); 
$this->addRoute('widgets', $route); 

正則表達式的路線是一種具體到我的應用程序,但你可以看到每個比賽會映射到一個參數。

+0

我發佈了一些示例代碼。希望它有幫助... – delsurf 2010-04-18 02:45:52

+0

甜,這是有道理的! – cappuccino 2010-04-19 16:56:05