Nested For-Loops

  • toifel toifel
    Jedi-Ratsmitglied
    0 x
    831 Beiträge
    96 Hilfreiche Beiträge
    03. 02. 2011, 10:52

    Hallo zusammen,

    seit gestern versuche ich mich an meiner ersten extBase Extension und komme mir mitlerweile wieder so richtig unwissend vor.
    Folgendes Problem habe ich: Das Objectmodel steht soweit und funktioniert tadellos, meine listView schickt folgendes Objekt an Fluid. Das Ergebnis aus $this->entriesRepository->findAll(); sieht so aus:

    [var1:protected] => 1299711600
    [var2:protected] =>
    [var3:protected] => Tx_EXT_Domain_Model_Details Object
    (
    [var31:protected] => 0
    [var32:protected] => 2
    [var33:protected] => 2

    Mit einer normalen <f:for> Schleife bekomme ich auch soweit alles ausgegeben. Problematisch wird es aber bei "var3" - hier würde ich normalerweise eine verschachtelte Schleife einsetzen. So sieht mein Versuch aus:

    <f:for each="{entries}" as="entry">
    <f:for each="{entry.var3}" as="detail">
    FOR: {detail.var31}<br />
    </f:for>
    </f:for>

    Das führt zu folgendem Error, der ansich auch logisch ist: The argument "each" was registered with type "array", but is of type "object" in view helper "Tx_Fluid_ViewHelpers_ForViewHelper".

    Kann man das irgendwie ohne einen eigenen ViewHelper lösen?

    Danke und Gruß,
    Martin


  • 1
  • marcusg marcusg
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    16. 02. 2011, 20:52

    Nur eine Idee: vielleicht kannst du die innere Schleife nur über eine {f:if Condition... ausführen.

  • Willi Willi
    T3PO
    0 x
    19 Beiträge
    0 Hilfreiche Beiträge
    26. 09. 2011, 10:30

    Gibt es inzwischen eine Lösung für verschachtelte ForEach Schleifen? Ich bekomme einen ähnlichen Fehler:

    1. #1237900529: The argument "each" was registered with type "array", but is of type "boolean" in view helper "Tx_Fluid_ViewHelpers_ForViewHelper"

    Ich möchte damit nur zwei ineinander verschachtelte Arrays ausgeben.

  • jank jank
    Sternenflotten-Admiral
    0 x
    158 Beiträge
    0 Hilfreiche Beiträge
    28. 09. 2011, 14:25

    Eigentlich gibt es hier keine Probleme.
    Ich schreibe gerade an einem Projekt in dem ich bei Bedarf endlos viele Verschachtelungen habe.

    Wichtig ist es im Model den Typ richtig festzulegen.
    Bei einer Beziehung zu einem anderen Model muss der Typ dem Klassennamen des anderen Model's entsprechen (1:1) oder Tx_Extbase_Persistence_ObjectStorage<Tx_[ExtensionName]_Domain_Model_[Model]> (1:n, n:m)

    Bitte korrigieren, falls ich falsch liege.

  • ArminB ArminB
    Jedi-Meister
    0 x
    410 Beiträge
    0 Hilfreiche Beiträge
    07. 10. 2011, 10:46

    moin,

    wie ist denn var3 im Model beschrieben?

    Armin

  • 1