Zend框架,URL视图助手和布局

3

我一直在使用Zend框架,但现在遇到一个我无法自己解决的问题。 我正在使用Zend_Layout,Zend_View和URL视图助手来创建超链接。 为了创建一些SEO友好的URL,我在我的layout.phtml文件中使用以下代码:

<?php echo $this->url( array( 'module' => 'default', 'controller' => 'contact' ), 'contact', true ); ?>

这个很好用。链接是contact.html(在我的bootstrap中处理)。但当我尝试访问一个没有路由的不同页面时(后端页面不需要具有SEO-URL),在访问联系页面后,Zend自动使用当前路由。为了使事情更清晰,我在layout.phtml中使用的代码来创建到后端页面的链接:

<?php echo $this->url( array( 'module' => 'admin', 'controller' => 'manage' ), null, true ); ?>

第二个参数 null 用于告诉助手此链接没有使用任何路由。但是,似乎 Zend 自动使用当前路由(联系人路由)。如何解决这个问题呢?
提前感谢!

2
作为一个不相关的提示,你应该在路由配置中定义模块和控制器,以便于路由contact,然后你就可以这样做:$this->url(array(), 'contact', true) - reko_t
1个回答

7
使用'default'作为路由参数。null告诉URL视图助手使用当前路由,而不是你认为的没有路由

谢谢,这解决了我的问题。我花了几个小时才找到答案,但在StackOverflow上不到一分钟就找到了。不知道Zend是否有文档记录这个。 - Martijn
1
好的,参数在代码中有文档记录:“@param mixed $name 使用的路由的名称。如果为null,则使用当前路由”,所以我认为它会出现在Zend文档中... - gnarf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接