2012-09-04 52 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