2012-04-03 6 views
1

Ich habe das Problem, dass in meiner ZF App die Aktion Helfer kann nicht geladen werden. Die Fehlermeldung lautet:Helper-Klasse kann nicht von Autoloader in meinem Zend Framework-Anwendung gefunden werden

Action Helfer namentlich Sonnenschein

nicht

Das Layout meiner ZF App nutzt Module gefunden, wo ich die folgende Struktur haben:

application 
    modules 
     weather 
      controllers 
      helpers 

ich die Helfer in den Modulen registriert haben Bootstrap, die hier in

application -> modules -> weather -> Bootstrap.php 

befindet, ist der Code

Was ist es, was mache ich hier falsch?

EDIT: Wie vorgeschlagen habe ich versucht, den Helfer im Bootstrap mit dem vollständigen Pfad hinzuzufügen, aber ich habe den gleichen Fehler.

Antwort

0

Die addPath Methode erwartet den gesamten Pfad zum Helferverzeichnis. Ändern Sie es zu so etwas wie:

Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/modules/weather/controllers/helpers', 'Weather_Controllers_Action_Helper_'); 

Alternativ können Sie auch fügen Sie die Pfade über application.ini:

resources.frontController.actionhelperpaths.Weather_Controllers_Action_Helper = APPLICATION_PATH "/modules/weather/controllers/helpers" 
+0

Hm, ich versuchte es mit dem vollständigen Pfad, aber das Ergebnis war das gleiche. Was kann sonst noch falsch sein? – loony

+0

Stellen Sie sicher, dass der Pfad tatsächlich im helperBroker registriert ist. Füge 'Zend_Debug :: dump ($ this -> _ helper)' zu deiner 'getForecasts()' Methode hinzu und überprüfe, ob der Pfad registriert ist (und korrekt ist) – Pieter

+0

Ich habe herausgefunden, dass das Modul Bootstrap nicht ausgeführt wird. Ich habe die addPath-Methode dem allgemeinen Bootstrap hinzugefügt und bin mit dem Debugger hineingegangen, um sicherzustellen, dass sie tatsächlich ausgeführt wird. Und es ist. Also habe ich die Debug-Nachricht bekommen, aber obwohl ich gesehen habe, dass der Pfad korrekt zur Plugin-Registrierung hinzugefügt wurde, wird er nicht irgendwo in der Debug-Nachricht angezeigt. – loony