Zum Inhalt springen

Call to a member function on a non-object

Erstellt am 10. Januar 2012 · 2 Antworten · letzte Antwort am 11. Januar 2012

Tags: Frage

Chandler ·

Hallo,

ich versuche im Moment, mir eine kleine Extension mit Hilfe des Extension Builders zu schreiben.
Nachdem ich mit dem Domain-Modeller die Models angelegt und das Plugin in eine Seite eingebunden habe, bekomme ich bei einem Aufruf der Seite immer nur eine Fehlermeldung:

Fatal error: Call to a member function findAll() on a non-object in C:\xampp\htdocs\typo3_test\typo3conf\ext\umfrage\Classes\Controller\UmfrageController.php on line 42

Hier der entsprechende Ausschnitt aus dem UmfrageController:

public function listAction() {
$umfrages = $this->umfrageRepository->findAll();
$this->view->assign('umfrages', $umfrages);
}

Da der gesamte Code so vom ExtensionBuilder erzeugt wurde und ich das dann eigentlich als Basis zum Lernen und Rumprobieren nutzen wollte, habe ich keinen Ansatz, was da schief läuft. Über ein paar Tipps, wo die Ursache liegen könnte, wäre ich sehr dankbar!

Gruß, Chandler

toifel ·

Ist die aktuellste Version von ExtBase + ExtBuilder installiert?
Gibt es im Controller die "inject" Funktion? Die müsste bei Dir "injectUmfrageRepository" heissen.
Dann noch mal sicherstellen, dass auch wirklich alle Dateien erstellt wurden, bspw. unter Classes/Domain/Repository/UmfrageRepository.php ...wenn die Fehlt auf jeden Fall mal den ExtBuilder updaten.

Chandler ·

Die von dir genannten Methoden und Dateien wurden in der Tat gar nicht erstellt. Nachdem ich dann zwei mal mein Typo3 zerschossen und neu installiert hatte, ist mir aufgefallen, dass ich das Häkchen bei "Is aggregate Root" nicht gesetzt hatte und darum kein Repository und inject-Methode erzeugt wurde...Dummheit wird bestraft #angry#

Danke für den Hinweis aufs Repository!