1

我的路线有问题。

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

访问 url 将是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/test/edit/randomname

怎么了?

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

4

1 回答 1

3

过去,我必须指定要与url()视图助手一起使用的路线。由于您的注销路由似乎使用默认路由,请在url()调用中指定它:

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

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

于 2013-02-07T13:31:36.553 回答