2010-12-15 12 views
0

Ich kann wirklich nicht herausfinden:Autoload Modelle mit zend in bootstrap.php

Ich habe eine Datei namens User.php in Anwendung/Modelle erstellt. Der Klassenname darin ist Model_User.

Wenn ich versuche, ein Objekt in meinem Controller zu erstellen, bekomme ich diesen Fehler:

Fatal error: Class 'Model_User' not found in C:\xampplite\htdocs\code\application\controllers\IndexController.php on line 14 

Ich googeln um, und diesen Code gefunden, die automatisch zu laden Controller für mich sollte es in Bootstrap befindet .php Der Code funktioniert nicht. Das Beispiel, in dem dieser Code verwendet wurde, arbeitete mit ZF 1.8. Das könnte der Grund sein, aber ich kann es nicht herausfinden. Wie soll ich meine Modelle automatisch laden ?!

private function _initAutoload(){ 
$modelLoader = new Zend_Application_Module_Autoloader(array(
    'namespace' => '', 
    'basePath' => APPLICATION_PATH 
)); 
return $modelLoader; 
    } 

Irgendwelche Ideen?

+1

Mögliches Duplikat von [Zend_Autoloader für Modelle verwenden] (http://stackoverflow.com/questions/1262358/use-zend-autoloader-for-models). – netcoder

+0

Ich denke, wir verwenden beide den Code aus dem gleichen Tutorial, aber er sagt, dass es für ihn funktioniert, außer für Unterverzeichnisse. Ich kann es überhaupt nicht zur Arbeit bringen. – networkprofile

Antwort

2

Das wichtige Bit in the answer auf die Frage, die ich oben verlinkt ist der Namespace:

$resourceLoader->addResourceTypes(array(
      'model' => array(
        'namespace' => 'Model', 
        'path'  => 'models' 
      ) 
    )); 

Der namespace Parameter des Autoloaders erzählt in dem definierten path (bezogen auf basePath) zu suchen, wenn eine Klasse zu begegnen, die mit Model_ beginnt . Sie haben den ersten Teil richtig, aber Sie verpassen den Anruf an addResourceTypes.

+0

Das funktioniert auch nicht. (Ich habe den Objektnamen geändert, es ist kein Tippfehler) Sorry, ich habe früher falsch verstanden! – networkprofile

+0

Es scheint, dass ich ein Insekt aus der Zend_Loader_Autoloader_Resource-Klasse und nicht den Zend_Application_Module_Autoloader, den ich benutzt habe. Fest! – networkprofile