2012-12-24 20 views
1

我正在使用Zend Framework 1.12。在使用Zend路由器時,其他鏈接(未定義爲路由的)損壞

我想添加一些路由器。我的系統中有用戶和管理員,並且我爲管理員添加了一個查看用戶頁面的路由器。

我加

// meant to create the usage "xxx.com/userview/someusername" 
    $route = new Zend_Controller_Router_Route(
      'userview/:username', 
      array('controller' => 'user', 
       'action' => 'viewone', 
       'username' => 'someusernamedefault') 
      ); 
    $router = $frontController->getRouter(); 
    $router->addRoute('userview', $route); 

我的bootstrap.php文件。 我在側欄中有一些鏈接,其中包含指向另一個控制器的動作的鏈接。我又增加了他們在一個.phtml文件鏈接爲

echo $this->url(array('controller'=>'somecontroller', 'action'=>'someaction'), null, true); 

該邊欄包含大量的這種聯繫,這是從多個控制器。

這些工作正常,直到我添加了路線。在我添加了Bootstrap的新路由(並添加了新的動作(viewall)到從根目錄指向的那個控制器(用戶)後,這工作正常(我可以用作「xxx.com/userview/someusername)。側邊欄都變成「xxx.com/userview」。他們都失去了控制和行動的價值觀......

我在做什麼錯?我應該定義我的網址的更好,或者我的路由器更好?

在此先感謝。

回答

3

第二個參數去的網址助手應該是你想使用的路由的名稱。通過傳遞空你告訴它使用當前的路線,這就是爲什麼鏈接現身錯誤。將您的側邊欄鏈接調用更改爲:

$this->url(array('controller'=>'somecontroller', 'action'=>'someaction'), 'default'); 

,然後它應該工作的罰款。