2012-11-04 82 views
2

我有一個自定義zend路由器的問題。 這是我的貓路由器Zend路由器URL數組合並

$frontController = Zend_Controller_Front::getInstance(); 
$router = $frontController->getRouter(); 
$router->addRoute('categories', new Zend_Controller_Router_Route(
     'video/k/:id/:title',array(
      'controller' => 'video', 
      'module' => 'default' , 
      'action' => 'k', 
      'id' => '', 
      'title' =>'' 
      ) 
    )); 

$params = Zend_Controller_Front::getInstance()->getRequest()->getParams(); 

當我嘗試HTTTP://dev.dummy.com/video/k/1/foo工作正常,但

$this->url(array_merge($params, array('order' => 'title'))) or 
$this->url(array_merge($params, array('order' => 'title')),'categories') 
$this->url(array_merge($params, array('order' => 'title')),'categories', true) 

犯規回報HTTTP: //dev.dummy.com/video/k/1/foo/order/title 仍然返回htttp://dev.dummy.com/video/k/1/foo

希望得到這個幫助。 謝謝。

回答

0

當做array_merge,整數鍵將被重置爲從起點開始。您只需將您的陣列,而不是array_merge:

$router->addRoute('categories', new Zend_Controller_Router_Route(
    'index/test/:id/:title',array(
     'controller' => 'index', 
     'module' => 'default' , 
     'action' => 'test', 
     'id' => '', 
     'title' => '' 

     ) 
    )); 

    echo $this->url(array('order' => 'title')); 

http://dev.dummy.com/video/k/1/foohttp://dev.dummy.chom/video/k/1/foo/order/title/試了一下。在這兩種情況下,url helper的輸出是 - htttp://dev.dummy.com/video/k/1/foo/order/title

+0

沒有任何改變仍然返回相同的網址。 – kaiokenzo