Zum Inhalt springen

findAll() liefert Werte im Frontend, nicht im Backend

Erstellt am 15. November 2012 · 1 Antwort · letzte Antwort am 15. November 2012

Tags: Frage

Daimoch ·

Guten Tag,

ich habe eine Datenbank "user". Diese lese ich mit:

$users = $this->userRepository->findAll();
		$this->view->assign('users', $users);

aus. Das Repository ist korrekt im UserController injected und liefert mir auch die korrekten Werte:

Tx_Extbase_Persistence_QueryResultprototype object (4 items)
   0 => Tx_xxxx_Domain_Model_Userprototypepersistent entity (uid=1, pid=0)
   1 => Tx_xxxx_Domain_Model_Userprototypepersistent entity (uid=2, pid=0)

zurück. Aber nur im Frontend-Plugin-Template!

Wenn ich nun im Backend das Repository injecte, gleiche Methode wie oben, liefert mir der Debugger:

Tx_Extbase_Persistence_QueryResultprototype object (empty)

für die Datenbanktabelle zurück.

Woran kann das liegen? Ich habe den UserController 1:1 in den MessageController übernommen.

Wieso ist die Datenbank, bei der selben Abrufmethode, im Backend leer und im Frontend korrekt angezeigt?

Vielen Dank!

Viele Grüße

Daimoch ·

Okay, hat sich erledigt.

Ich habe vergessen, mein Template im Backend hinzuzufügen, damit er die Config-Dateien in dem TypoScript-Ordner meiner Extension überhaupt erkennt.

Dazu geht man ins Backend. Dann die Root-Seite auswählen, links auf Templates klicken, oben im Dropdown "Info/Bearbeiten", anschließend Vollständigen Template-Datensatz bearbeiten und beim Reiter "Enthält" unter verfügbaren Objekten sein Plugin auswählen. Speichern -> fertig.

Ich weiß nicht, ob es nötig war, aber ich habe in der setup.txt noch folgendes angefügt:

persistence.classes.Tx_xxxx_Domain_Model_Message.mapping.tableName = user
config.tx_extbase.persistence.classes.xxxx_Domain_Model_Message.mapping.tableName = user

um die "fremden" Table des UserModel dem MessageModel zu mappen. 🙂

Natürlich wie immer Stunden lang woanders den Fehler gesucht. *glücklich*