2009-04-28 112 views
0

我越來越想在我的Zend框架應用程序中使用一個模塊化的佈局時,下面的錯誤工作:如何獲得模塊在Zend框架

未定義指數:認證在C:\ PHP \包括\ Zend公司\控制器\調度\ Standard.php上線385

下面的代碼此錯誤之前運行:

if (!$this->_acl->isAllowed($role, $resource, $privilege)) { 
    $request->setModuleName('authentication'); 
    $request->setControllerName('auth'); 
    $request->setActionName('login'); 
    $request->setDispatched(false); 
} 
在我的引導

,我有:

$frontController 
    ->setParam('environment', $this->environment) 
    ->setControllerDirectory(ROOT_DIR . '/controllers') 
    ->addModuleDirectory(ROOT_DIR . '/modules'); 

和我的目錄結構是:

/ application 
    /controllers 
    /models 
    /views 
    /library 
    /modules 
     /Authentication 
      /controllers 
       AuthController.php 

任何思考爲什麼不工作?

回答

1

區分大小寫?在文檔中我沒有發現任何明確提及區分大小寫的文檔,但所有帶模塊的示例也顯示全部爲小寫的模塊目錄名稱。

我自己的最近的ZF應用程序使用模塊,目錄名都是小寫字母。

另外,你有路由定義中的默認模塊集?

+0

謝謝彼得,那當然擺脫了那個錯誤信息。不幸的是,另一個出現在它的地方: PHP致命錯誤:在C:\ PHP \ includes \ Zend \ Controller \ Dispatcher \ Standard.php中帶有消息'Invalid controller class(「Authentication_AuthController」)'的未捕獲異常'Zend_Controller_Dispatcher_Exception':353 我還沒有定義一個默認模塊 - 我想我可以直接在應用程序目錄下保存我的應用程序特定文件 - 這不是這種情況嗎? (我看到我上面的目錄結構是錯誤的 - 我現在已經制作了應用程序的所有文件夾子目錄)。 – Iain 2009-04-30 16:59:38

+0

好的 - 錯誤信息是因爲我需要命名我的控制器類與Module_Controller約定,而不是隻是控制器,對嗎?所以Authentication_AuthController而不僅僅是AuthController。 – Iain 2009-04-30 17:10:26

0

出於好奇,爲什麼你有一個完整的模塊設置進行身份驗證(而不是隻在默認模塊內部執行一項操作來完成此操作)?