[Frage] Extension empty properties but correct uid TYPO3-Version: 8.7.8

  • mchapen mchapen
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    27. 11. 2017, 22:29

    Hallo Leute,

    ich habe seit neustem meine erste Typo3 Extension geschrieben und bin wie das "Creating a first extension" Kapitel aus der Dokumentation vorgegangen. Zunächst hatte ich auch keine Probleme und die Daten wurden mir im FE richtig ausgegeben. Nach weiterem Arbeiten an meinem Typo3-Projekt, hat die Extension aber plötzlich keine Werte mehr ausgegeben und die Tabelle hatte zwar genausoviele Zeilen wie auch Einträge in der Datenbank aber diese Zeilen waren leer. Sobald ich die Extension deinstalliere und reinstalliere funktionierte es wieder für kurze Zeit. Ich habe mir die leeren Daten auch mit [code]<f:debug>[/code] ausgegeben. Die einzelnen Attribute sind leer aber die uid ist richtig... sehr seltsam. Ich habe auch versucht jeglichen Cache immer wieder zu löschen. Anfangs klappts dann auch aber irgendwann dann nicht mehr.

    Hatte jemand auch mal dieses Problem und kann mir weiterhelfen?

    Viele Grüße


  • 1
  • mchapen mchapen
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    28. 11. 2017, 21:46

    Hey Leute,
    ich sitze weiter fest. Habe nun gelesen, dass ggf. plugin.tx_myext.persistence.storagePid = 10 helfen könnte. Tut es leider nicht. Ich rufe im Controller mit findAll() alle Daten auf. Habe probiert, dies mit

    public function findAllOverwrite() {
    $query = $this->createQuery();
    $query->getQuerySettings()->setRespectStoragePage(FALSE);
    return $query->execute();
    }

    zu überschreiben, weil ich gelesen habe, das damit andere Ihr Problem beheben konnten. Naja ich steh zur Zeit echt auf dem Schirm. Ich habe heute auch mal die Datenbank gelöscht und neu initialisiert. Geholfen hat es dann auch nur kurz.

    Gruss und schönen Abend!

  • getit getit
    Jedi-Ritter
    0 x
    136 Beiträge
    3 Hilfreiche Beiträge
    14. 12. 2017, 12:07

    Sorry, da kann ich dir auch nicht weiterhelfen.
    Wenn du sagst du deinstallierst die Extension und installierst dies dann neu oder Initialisierst die DB neu und dann gehts eine Weile und dann nicht mehr.

    Aber ich kann dir deinen Code mal erklären
    [code]plugin.tx_myext.persistence.storagePid = 10
    [/code]
    bedeutet einfach nur, dass neue Datensätze aus deiner Extension immer auf der Seite mit der ID 10 gepeichert werden.

    Und der Code in deiner findAllOverwrite()-Fkt.
    [code]$query->getQuerySettings()->setRespectStoragePage(FALSE);
    [/code]
    setzt das Standardverhalten von TYPO3 bzw. Extbase zurück.
    Denn normalerweise findet findAll() nur Datensätze für die aktuelle Seite. Das heißt wenn du im BE von TYPO3 zb. die Seite 'Homepage' mit der Beispielhaften SeitenID 10 markiert hasst würde deine Extension nur Datensätze für eben diese ID anzeigen.
    Mit 'setRespectStoragePage(false)' sagst du Extbase/TYPO3 aber, dass du alle (aktiven) Datensätze haben willst und nicht nur die von der geraden aktiven Seite (in diesem Bsp. 'Homepage' mit der ID 10).

    Du wirst dich jetzt vielleicht fragen:
    Wieso storagePid und nicht storageId (oder storageUid)?
    TYPO3 speichert die Seiten und die Daten in zwei versch. Tabellen.
    pages für Seiten - hier gibt es den Primärschlüssel uid.

    tt_content für Inhalte - hier gibt es wieder den Primärschlüssel uid und eine weitere Spalte pid, die ein Fremdschlüssel der uid auf pages ist.

    Ich hoffe ich kann dir damit wenigstens etwas helfen

  • 1