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
一切工作正常与自定义url的,但我不能组装正常的none。我尝试使用以下代码从视图中添加链接:
$this->url(array('controller' => 'search', 'action' => 'index');
问题是,当我在索引控制器的索引页中使用此代码时,返回的url是当前控制器/操作的url,而不是我需要的url。
这是因为URL视图助手选择最后一个活动路由。如果你有多条路由,总是定义你要使用的路由:
$this->url(array('controller' => 'search', 'action' => 'index'), 'default');
第二个参数是要使用的路由,第三个可选参数是是否需要重置所有参数(true/false)。
为此,您需要设置如下所示的反向路由图。
最推荐的生成URL的方法是使用您自己的自定义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;
}
}
要生成URL,只需调用
$this->fullUrl('search');
将输出
www.example.com/search