Why Zend_View_Helper_Url returns relative path when using the default route and absolute path when using a custom route?

StackOverflow https://stackoverflow.com/questions/16334997

문제

I have an application running on Zend Framework 1.12 and I am using the URL view helper. I also have a few custom routes which I use with the URL helper to clean the code.

When I use a format such as this:

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

The resulting string is a relative path to the action - /myapp/index/index

But when I use a custom route as such:

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

The resulting string is an absolute path - http://www.domain.com/custom-route

I don't understand why is this happening and I can't find any information about this behavior online. Furthermore, I wish to know if there's a way to prevent it from happening and produce consistency in the way the URL view helper works (preferably to always return a relative path).

Thanks.

도움이 되었습니까?

해결책

I think this is as simple as your first example being a default type Zend_Controller_Router_Route_Module route that is normally relative.

Your second example is a named route so it needs to include the base url in order to be valid. I don't believe rewritten routes can be relative as the route may or may not refer to an actual location.

I've done some limited testing and I believe that if you set your baseUrl value the first example will also include the host address. So for consistency your urls will always be absolute.

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

Hope this helps.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top