Php 使用Zend Router时,其他链路(未定义为路由的链路)损坏

Php 使用Zend Router时,其他链路(未定义为路由的链路)损坏,php,zend-framework,url-routing,zend-route,zend-router,Php,Zend Framework,Url Routing,Zend Route,Zend Router,我正在使用Zend Framework 1.12 我想添加一些路由器。我的系统中有用户和管理员,我添加了一个路由器,供管理员查看用户页面 我补充说 // meant to create the usage "xxx.com/userview/someusername" $route = new Zend_Controller_Router_Route( 'userview/:username', array('controller' =&g

我正在使用Zend Framework 1.12

我想添加一些路由器。我的系统中有用户和管理员,我添加了一个路由器,供管理员查看用户页面

我补充说

// 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);
此侧边栏包含许多来自多个控制器的链接

在我添加路线之前,这些都很有效。在我将新路由添加到引导程序(并将新操作(viewall)添加到从根用户指向的控制器(用户)后,效果很好(我可以使用“xxx.com/userview/someusername”)。但是我在侧边栏中的其他链接都变成了“xxx.com/userview”。它们都失去了控制器和操作的值

我做错了什么?我应该更好地定义我的url,还是更好地定义我的路由器


提前感谢。

URL帮助程序的第二个参数应该是您要使用的路由的名称。通过传递null,您告诉它使用当前路由,这就是链接出错的原因。将侧栏链接调用更改为:

$this->url(array('controller'=>'somecontroller', 'action'=>'someaction'), 'default');
然后它就可以正常工作了