extbase-Repository findAll () gibt das Ergebnis null zurück

8

Ich habe mehrere Controller wie diese: CategoryController und NewsController Sowie die Domain-Modelle für Kategorie und Nachrichten und Repositories für beide.

Im NewsController führe ich eine dependencyInjection so durch (wie in categoryController):

%Vor%

Wenn ich jetzt in einer Funktion so etwas versuche:

%Vor%

Ich bekomme ein leeres Ergebnis zurück.

Das Seltsame für mich ist, dass, wenn ich das im CategoryController mache, die gleiche Funktion wie charm funktioniert und alle Elemente in der Datenbank zurückgibt und für mich noch seltsamer ist, dass wenn ich ein $ mache this- & gt; categoryRepository- & gt; findByUid (1) Ich bekomme das richtige Element als Ergebnis .

Ich habe auch zu meinem categoryRepository eine Testfunktion hinzugefügt:

%Vor%

Wenn ich diese Funktion von categoryController aus aufrufen, bekomme ich die korrekte Anzahl an Elementen zurück. Wenn ich das von meinem newsController aus anrufe, bekomme ich "0" zurück ...

Ich verstehe es nicht ...

Was vermisse ich ??? Wo ist mein Fehler?

    
kapale 22.07.2012, 17:11
quelle

4 Antworten

11

Das hat mich seit Tagen (oder Wochen) gestört. Die StoragePid (der Verweis auf die Seite, an die Ihre Datenbankelemente angehängt sind) führt nicht zur Datenbankabfrage, wenn Sie irgendwo in Ihrem TypoScript Folgendes nicht definieren:

%Vor%

Setzen Sie dies in Ihren Page-TS und die findAll-Methode von Tx_Extbase_Persistence_Repository sollte gut funktionieren.

Wochen.

    
Hendrik 18.10.2012 12:01
quelle
3

Oder Sie könnten das Repository zwingen, Speicherseite zu ignorieren:

%Vor%

Von nun an wird Ihr Repository jeden Datensatz aus der Datenbank abrufen.

    
greg 01.09.2014 10:08
quelle
2

Sind Sie sicher, dass der Rückgabewert von findAll () NULL ist?

Es könnte sein, dass Ihre Dependency Injection nicht funktioniert. Dann sollte die Ausnahme in etwa so aussehen:

  

findAll () wird für ein Nicht-Objekt ($ this- & gt; categoryRepository)

aufgerufen

Auch in Ihrem injectCategoryRepository schreiben Sie $categoryRepository in lowCamelCase und in den Annotationen in UpperCamelCase $CategoryRepository

Hoffe das hilft ..

    
PeterTheOne 23.07.2012 09:55
quelle
1

Wie Hendrik gesagt hat, können Sie es in Ihrem Page-TS einstellen. Eine andere Lösung ist: in Ihrem BE, bearbeiten Sie Ihren Seiteninhalt, der das Plugin enthält, wählen Sie den Sys-Ordner, in dem Ihre db-Artikel gespeichert sind. Diese finden Sie unter der Registerkarte "Verhalten" für Typo3 v6.1

    
konjye 31.01.2014 11:13
quelle

Tags und Links