2012-02-13 66 views
2

我使用zend框架来开发我的项目。我想在某些模型中使用协议获取基础URL。我尝试以下几行来做到这一点。但它返回空。在模型中获取基础url

$front = Zend_Controller_Front::getInstance(); 
$baseUrl = $front->getBaseUrl(); 
echo $baseUrl; 

我可以从那种方式获得基地网址。什么是最好的解决方案来做到这一点。我也可以使用下面的行。

$baseUrl = 'http://'. $_SERVER['HTTP_HOST']; 
echo $baseUrl; 

但我想要最好的解决方案。请帮帮我。

+0

可能重复的[Zend框架$这个 - >的baseUrl( )总是返回当前页:(为什么)(http://stackoverflow.com/questions/1332787/zend-framework-this-baseurl-always-returns-the-current-page-why) – PeeHaa 2012-02-13 12:11:24

+0

看看这篇文章:http://stackoverflow.com/a/1332872/1100237 – coppettim 2012-02-13 12:06:45

回答

1

要获得方案和域您可以使用此:

$request = Zend_Controller_Front::getInstance()->getRequest(); 
$url = $request->getScheme() . '://' . $request->getHttpHost(); 

URL的其余部分就可以产生这样的:

$serverUrlHelper = new Zend_View_Helper_ServerUrl(); 
$yourUrl = $serverUrlHelper->serverUrl(
$this->getHelper('url')->url(
     array(
      'module' => 'yourmodule', 
      'controller' => 'yourcontroller', 
      'action' => 'youraction', 
     ), 
     null, // the route 
     true));