我的路线有问题。
因此,假设我的 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在默认模块中。
答案 0 :(得分:3)
过去,我必须指定与url()
view-helper一起使用的路由。由于您的注销路由似乎使用默认路由,请在url()
调用:
<a href="<?php
echo $this->url(array(
'controller' =>'account',
'action' =>'logout'
), 'default'); ?>">Logout</a>
如果您没有明确指定路线,则会使用当前路线,在您的情况下可能是edit-test
路线。