为什么Zend_View_Helper_Url在使用自定义路由时使用默认路由和绝对路径时返回相对路径?

时间:2013-05-02 09:48:25

标签: zend-framework url zend-route view-helpers

我有一个在Zend Framework 1.12上运行的应用程序,我正在使用URL视图助手。我还有一些自定义路由,我使用URL帮助程序来清理代码。

当我使用这样的格式时:

$this->url(array('module' => 'myapp', 'controller' => 'index', 'action' => 'index'), 'default', true)

结果字符串是操作的相对路径 - /myapp/index/index

但是当我使用自定义路线时:

$this->url(array('var' => 'value'), 'custom-route', true)

结果字符串是绝对路径 - http://www.domain.com/custom-route

我不明白为什么会发生这种情况,我无法在网上找到有关此行为的任何信息。此外,我想知道是否有办法防止它发生并以URL视图助手的工作方式产生一致性(最好总是返回相对路径)。

感谢。

1 个答案:

答案 0 :(得分:1)

我认为这很简单,因为您的第一个示例是通常相对的默认类型Zend_Controller_Router_Route_Module路由。

您的第二个示例是名为的路由,因此需要包含基本网址才能生效。我不相信重写路线可能是相对的,因为路线可能会或可能不会指实际位置。

我做了一些有限的测试,我相信如果你设置 baseUrl 值,第一个例子也会包含主机地址。因此,为了保持一致,您的网址将始终是绝对的。

//application.ini
resources.frontController.baseurl = http://www.domain.com

希望这有帮助。