Zend框架路由器问题

时间:2013-02-07 13:24:20

标签: zend-framework frameworks router

我的路线有问题。

因此,假设我的 TestController 带有 edit 动作,它获取一个名为'name'的参数。

访问网址为 test.com/test/edit/name/randomname

我想这样做可以通过 test.com/test/edit/randomname 访问它,所以我添加了 这在Bootstrap的_initRoutes函数中。

$router = Zend_Controller_Front::getInstance()->getRouter();
            $route = new Zend_Controller_Router_Route(
                'test/edit/:name',
                array('controller' => 'test', 'action' => 'edit', 'name' => 'Default'));
        $router->addRoute('edit-test', $route);

所以它按照我想要的方式工作,但又出现了另一个问题。 我在layout.phtml中有一个类似

的链接
<a href="<?php echo $this->url(array('controller' =>'account','action'=>'logout'));?>">Logout</a>

问题在于,当我导航到 test.com/test/edit/randomname 时,上面的链接出于某些奇怪的原因发生变化并指向与上面相同的URL,即 test的.com /测试/编辑/ randomname

出了什么问题?

注意:我使用模块,TestController在默认模块中。

1 个答案:

答案 0 :(得分:3)

过去,我必须指定与url() view-helper一起使用的路由。由于您的注销路由似乎使用默认路由,请在url()调用:

中指定它
<a href="<?php 
  echo $this->url(array(
     'controller'  =>'account',
     'action'      =>'logout'
  ), 'default'); ?>">Logout</a>

如果您没有明确指定路线,则会使用当前路线,在您的情况下可能是edit-test路线。