2011-04-20 73 views
0

我有一個auth模塊,並且希望在模塊的forms文件夾中保留Login表單。我有我的類名爲Auth_Form_Login我用實例它authIndex控制器代碼:爲什麼我的表單不能使用我的模塊?

$loginForm = new Auth_Form_Login($_POST); 

然而,Zend公司抱怨說,它無法找到類。我究竟做錯了什麼?

編輯

我的目錄結構如下所示:

application 
    configs 
    layouts 
    modules 
     auth 
      controllers 
      models 
      views 
       forms  <--- This is what I want to autoload from 
     default 
      controllers 
      models 
      views 

library 
public 

此外,模塊設置正確:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.frontController.params.prefixDefaultModule = false 
+0

你有到位的'Admin'模塊的引導? – Vika 2011-04-20 14:40:00

回答

1

似乎像你缺少Auth模塊的引導程序:

application 
    modules 
     auth 
      Bootstrap.php 

可能由這隻行 - 只是爲了讓自動加載魔工作:

class Auth_Bootstrap extends Zend_Application_Module_Bootstrap {} 
+0

啊,這是有道理的。但是,它仍然不起作用。我的應用程序有一個名稱空間「SomeName」,用於控制器插件(例如'SomeName_Controller_Plugin_Test')。我需要Auth模塊中任何地方的'SomeName'命名空間嗎?例如,我是否需要'SomeName_Auth_Form_Login'或類似的東西? – 2011-04-20 14:52:21

+0

我想我剛纔提到的是這個問題,因爲我得到的錯誤是這樣的:'ErrorController中發現的應用程序錯誤:異常'ErrorException'帶有'include_once(SomeName \ Auth \ Form \ Login.php)'消息。或者基本路徑設置不正確,或者有更多的命名空間問題 – 2011-04-20 14:53:38

+0

不,你不需要這樣做另一件需要檢查的事情是你是否像下面這樣初始化你的'application.ini'中的模塊:'resources.modules [ ] =' – Vika 2011-04-20 14:55:45

1

你就在你的形式初始化無所不爲。自動加載器根本不知道在哪裏找到它,所以你需要正確設置zend自動加載器。

我不知道你是如何創建你的基於模塊的結構。我使用配置一切的cli tool

所以在我的application.ini文件我有:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.modules = '' 
resources.frontController.params.prefixDefaultModule = "1" 

在我Boostrap.php:

$modelLoader = new Zend_Application_Module_Autoloader ( 
         array ('namespace' => '', 'basePath' 
             => APPLICATION_PATH . 
              '/modules/default')); 

您還可以設置的autoloader manually by registering your resources

$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
    'basePath' => 'path/to/my/directory', 
    'namespace' => 'Auth', 
    'resourceType' => array(
     'form' => array(
      'path' => 'forms/' 
      'namespace' => 'Form' 
     ) 
     //...your code 
    ) 
    ) 
); 
+0

我的basePath應該是什麼?我已將我的目錄結構添加到我的問題中。 – 2011-04-20 14:42:03

+0

你有一個錯誤的項目結構,表單文件夾必須放在auth目錄中,而不是auth的視圖目錄 – 2011-04-20 15:03:37

+0

好吧,我已經移動它,但它仍然給我這個錯誤:'ErrorController中捕獲的應用程序錯誤:異常'ErrorException'與消息'include_once(SomeName \ Auth \ Form \ Login.php)...' – 2011-04-20 15:05:56

相關問題