2012-09-04 49 views
1

Zend Framework对我来说是全新的,我遇到了问题。可能很容易解决,但我无法在Google中找到任何解决方案。如何在zend框架中设置公共文件夹的正确路径

我想不出如何设置公用文件夹的正确路径。使用XAMPP作为虚拟主机的IM,我目前的完整路径是这样的:

localhost/zf_project/public/controller/action 

现在,当我使用的形式和链接它的动作我localhost/controller/action,所以目前我加入无处不在:

$front = Zend_Controller_Front::getInstance(); 
$form->setAction($front->getBaseUrl().'/controller/action'); 

可能有最简单的方法来设置公用文件夹的默认路径。 我想加入我的.ini应用程序文件:

resources.frontController.baseurl = "/zf_project/public" 

回答

4

ZF可以确定您的基本URL,而无需将其设置在您的配置文件或引导程序中。

从视图中,您可以使用baseUrl帮助程序与基本URL构建链接。

// resolves to localhost/zf_project/public/controller/action 
$this->form->setAction($this->baseUrl('controller/action')); 

// or 

// resolves to localhost/zf_project/public/images/icons/online.png 
<img src="<?php echo $this->baseUrl('images/icons/online.png') ?>" /> 

您可以使用帮助器url构造URL。这会根据配置的路由构建您的URL。

// localhost/zf_project/public/controller/action/id/1234 
echo $this->url(array('controller' => 'controller', 
         'action'  => 'action', 
         'module'  => 'default', 
         'id'   => 1234)); 

您可以使用这些佣工从你的控制器也是如此,只需指定视图对象当你想打电话给他们:

$this->view->baseUrl(); 
$this->view->url($params); 

几乎任何地方我参考图像,JavaScript,CSS文件,或静态内容我使用baseUrl帮手。任何时候我想链接到我的应用程序中的其他控制器或操作,我使用url帮助器,因为它使用您的路由构建有效的URL。这样,如果您更改网址结构,url帮助程序将反映这些更改,您不必修改现有代码。

+0

谢谢!这正是我想要的 – user1409508

2

你需要修改你的虚拟主机文件。

它是标准实践在基础根上有Zend应用程序。

在你的XAMP(我不是很多的Windows,但会试一试),你应该有一个文件夹:/xampp/apache2/conf那里你会发现apache2.conf或httpd.conf,其中任何一个。打开它们,你应该在某个地方找到DocumentRoot,用你的/public文件夹导航。

或者,一起制作新的virtual host

另外,我发现this good tutorial,跟着它一步一步(或跳过步骤3)

希望它能帮助:)

问题?

+0

我不确定它的标准做法是否在文档根目录中有应用程序,至少我从来没有在任何地方看到过。当然,依靠这是国际海事组织的不良做法。 – drew010

+0

我说过,Document Root是因为他的主机是localhost。但是,我指出了一个快速的Google链接,我发现即使作者希望zf应用程序位于自定义主机(如果不是本地主机)上,而是作为'/ zf_project/public /'的一部分。 – Karma

+0

@KarmicDice谢谢你也帮助我! – user1409508