Objektausgabe in Fluid

  • eddy eddy
    Sternenflotten-Admiral
    0 x
    177 Beiträge
    0 Hilfreiche Beiträge
    10. 10. 2011, 10:20

    Hallo Typo3-Gemeinde,

    ich möchte ganz banal ein Objekt in Fluid ausgeben und erstelle dazu im Controller ein Objekt $products und weise es products zu:

    1. $productRepository = t3lib_div::makeInstance('Tx_Inventory_Domain_Repository_ProductRepository');
    2. $products = $productRepository->findAll();
    3. $this->view->assign('products', $products);

    Im Template versuche ich nun auf products zuzugreifen. Diese Variante funktioniert jedoch nicht:

    1. {products.name}

    Verwende ich jedoch ein for each, dann klappt das:

    1. <f:for each="{products}" as="produktausgabe">
    2. {produktausgabe.name}</f:for>

    Meine Frage ist nun, warum ich nicht direkt über products zugreifen kann? Vielleicht kann mir jemand dies kurz erläutern.

    Vielen Dank
    Eddy


  • 1
  • rlp_immigrant rlp_immig...
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    10. 10. 2011, 10:43

    Hi Eddy,

    mit

    1. $products = $productRepository->findAll();

    fragst du [u]alle[/u] Objekte in dem Repository ab. Folglich müssen die Objekte irgendwie gespeichert werden. Früher war es ein Array, jetzt ist es ein QueryResult Objekt welches du aber wie ein Array ansprechen kannst.

    wenn du einfach nur

    1. {products.name}
    machst, woher soll extbase dann wissen welches Objekt du meinst?

    Du kannst auch einfach mal

    1. <f:debug>{products}</f:debug>
    machen. Vielleicht wird es dann klarer.

    Grüße
    Alex

  • eddy eddy
    Sternenflotten-Admiral
    0 x
    177 Beiträge
    0 Hilfreiche Beiträge
    10. 10. 2011, 11:23

    Hi Alex,

    danke für die einleuchtende Antwort.

    Merkwürdigerweise wird das <f:debug> jedoch nicht ausgeführt und es erscheint ein leerer Bildschirm. Da muss ich dann nochmal ran.

    Eddy

  • sobi555 sobi555
    Jedi-Meister
    0 x
    283 Beiträge
    2 Hilfreiche Beiträge
    10. 10. 2011, 21:05

    Doch, ich glaube, dass der debug schon ausgeführt wird. ABER... bei mir liefert er so viele Daten, dass mein Browser abstürzt. (irgendwann zeigt er was an)

    Deswegen meine Frage... wie verhält sich das mit der Performance, wenn ich "findAll" verwende?

    LG - Simon

  • eddy eddy
    Sternenflotten-Admiral
    0 x
    177 Beiträge
    0 Hilfreiche Beiträge
    11. 10. 2011, 09:39

    Habe es nochmals mit debug getestet. Der Browser ist eine Weile beschäftigt, bricht dann aber irgendwann ab und die Seite bleibt leer.

    Beziehe ich mich jedoch auf ein spezielles product, also z.B.

    1. <f:debug>{products.0}</f:debug>

    dann wird ein korrektes debug dieses products erzeugt.

    Eddy

  • 1