Php Zend:url视图帮助程序组装的url不正确

Php Zend:url视图帮助程序组装的url不正确,php,zend-framework,zend-route,Php,Zend Framework,Zend Route,一切都可以与自定义url的,但我不能组装正常的没有。 我尝试使用视图中的以下代码添加链接: I have a problem using my url view helper. I have defined custom routes like so: ; Index routes.domain.type = 'Zend_Controller_Router_Route_Static' routes.domain.route = '/' routes.domain.defaults.contro

一切都可以与自定义url的,但我不能组装正常的没有。 我尝试使用视图中的以下代码添加链接:

I have a problem using my url view helper. I have defined custom routes like so: 
; Index
routes.domain.type = 'Zend_Controller_Router_Route_Static'
routes.domain.route = '/'
routes.domain.defaults.controller = index
routes.domain.defaults.action = index

问题是,当我在index controller的索引页面中使用此代码时,返回的url是当前控制器/操作的url,而不是我需要的url

为此,您需要设置反向路线图,如所述

最推荐的生成URL的方法是使用您自己的自定义URL视图帮助器

$this->url(array('controller' => 'search', 'action' => 'index');
所以,要生成URL,只需调用

class My_View_Helper_FullUrl extends Zend_View_Helper_Abstract {

public function fullUrl($url) {
    $request = Zend_Controller_Front::getInstance()->getRequest();
    $url = $request->getScheme() . "://" . $request->getHttpHost(). "/" . $url;
    return $url;
  }
}
它将输出

www.example.com/search


这是因为URL视图帮助器选择最后一个活动路由。如果有多条管线,请始终定义正在使用的管线:

$this->url(数组('controller'=>'search','action'=>'index'),'default')


第二个参数是要使用的路由,第三个可选参数是是否需要重置所有参数(真/假)。

Duh。。。当然,我应该将路由的名称设置为“default”。非常感谢你对Kees的帮助!
$this->fullUrl('search');