2010-11-04 53 views
4

我在我的Zend項目中創建了一個模塊(人員)。然後在該模塊中創建一個控制器(PersonController.php)。然後在該控制器中創建一個動作(addAction)。但是當我使用http://myproject.dev/person/person/add時,它什麼也沒有顯示。如何在Zend Framework中啓用我的模塊?

http://myproject.dev/指向我的zendproject的公用文件夾,因此當我使用http://myproject.dev/時,它向我顯示了索引頁的成功。但它不適用於我的模塊。

我已經看到的地方,我們必須配置的application.inibootstrap.php中告訴了Zend我們的模塊目錄,但我不知道怎麼辦。這些陳述是什麼?

我的當前目錄是這樣的:

zendproject| 
      |-> application 
          |-> models 
          |-> modules 
            |-> person 
               |->controllers 
                   |-> PersonController.php 
+0

沒有你使用Zend_Tool來創建模塊? – piddl0r 2010-11-04 14:01:02

+0

是的,我使用Zend_Tool來創建模塊,控制器,甚至行動。 – Awan 2010-11-04 14:03:50

+0

什麼是您的服務器配置,例如LAMP/WAMP/Windows + IIS? – 2010-11-11 05:14:35

回答

11

嘗試做接下來的事情就:
1)的application.ini

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.modules[] = "" 

2)每個模塊中創建引導:

class Person_Bootstrap extends Zend_Application_Module_Bootstrap { 
} 
+0

這是我的問題中的錯字。我的模塊文件夾位於zend的應用程序文件夾中。 – Awan 2010-11-04 14:07:24

+0

@Awan,看我的編輯。 – pltvs 2010-11-04 14:14:47

2

我想你可以簡單地在你的application.ini

resources.modules[] = 

只需將其添加下面的模塊配置。

2

代碼的方式來做到這一點,你的引導內,會是這樣的:

$frontController = Zend_Controller_Front::getInstance(); 
$frontController->throwExceptions(true); 
$frontController->returnResponse(true); 
$frontController->setControllerDirectory(
      array(
       'default' => '/path/to/application/controllers', 
       'person' => 'path/to/application/person/controllers' 
      ) 
     ); 
$response = $frontController->dispatch(); 
$response->sendResponse(); 

請參閱http://framework.zend.com/manual/en/zend.controller.front.html(特別,尋找副標題「setControllerDirectory()和addControllerDirectory」)

0

我不知道爲什麼,但我不得不只需添加下面只行得到它的正常工作:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"