2013-04-15 120 views
2

我需要像在zf1中一樣路由URL。在Zend Framework中使用路由2

特別是我需要這些網址會自動重定向到適當的操作而不必每次都指定一條新路線。

/site/getData 
/site/getData?param=5&par2=test 
/site/getOther 
... 

所以段路線是不行的,我已經嘗試了文字的路線,但我不能達到工作的解決方案。

任何人都可以幫到我嗎?

非常感謝

回答

2

這應該由像文檔中提供了一個漂亮的默認網段路由來解決。

'type' => 'Zend\Mvc\Router\Http\Segment', 
'options' => array(
    'route' => '/:controller[/:action]', 
    'constraints' => array(
     'controller' => '[a-zA-Z][a-zA-Z0-9_-]+', 
     'action'  => '[a-zA-Z][a-zA-Z0-9_-]+', 
    ), 
    'defaults' => array(
     'controller' => 'default-controller-alias', 
     'action'  => 'index', 
    ), 
) 

現在,如果您設置控制器的名稱,如下列:

'controllers' => array(
    'invokables' => array(
     'sites' => 'Namespace\Controller\SitesController', 
     'other' => 'Namespace\Controller\OtherController' 

那麼你應該能夠實現你想要什麼。並創建PARAMS到你的路線,你只要正確使用視圖助手;)

$this->url('routename', 
    array(
     'controller' => 'site', 
     'action'  => 'getData' 
    ), 
    array (
     'query' => array(
      'param1' => 'foo', 
      'param2' => 'bar', 
      'paramN' => 'baz', 
     ) 
    ) 
) 
+0

此代碼將僅用於索引行動工作,並將禁止的其他行動 –

+0

禁止的行爲?這與訪問控制無關 – Sam

+0

段的問題是當我把這樣的查詢字符串參數: – fasi91