Extbase Fluid Verschachtelte Objekte

  • waldosparding waldospar...
    Jedi-Meister
    0 x
    309 Beiträge
    0 Hilfreiche Beiträge
    04. 10. 2010, 14:23

    Hallo zusammen,

    ich habe eine einfache Liste von Datenbankeinträgen. Jedem Eintrag kann eine Kategorie zugwiesen werden.
    Jetzt möchte ich ein Listing aller Einträge mit der dazugehörigen Katekorie. Kategorie ist als MM-Beziehung realisiert.

    Also: z.B.

    1. Name Vorname Kategorie
    2. Müller Martin Bekannte
    3. Schmidt Theo Verwandte

    etc.

    Im vom Kickstarter erzeugten Listing kann ich auf Name und Vorname zugreifen. Kategorie ist aber wiederum ein Objekt. Wie kann ich jetzt im Template auf die Eigenschaften des Objekt (Kategoriename) zufgreifen ?

    vg
    Waldo


  • 1
  • rlp_immigrant rlp_immig...
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    23. 11. 2010, 22:05

    [quote="waldosparding"]
    Wie kann ich jetzt im Template auf die Eigenschaften des Objekt (Kategoriename) zufgreifen ?
    [/quote]
    Du musst innerhalb der For-Schleife noch eine For-Schleife für die Kategorien machen.

  • typonewbe typonewbe
    Sternenflotten-Admiral
    0 x
    197 Beiträge
    3 Hilfreiche Beiträge
    09. 12. 2010, 19:39

    Hi,

    ungefähr so:

    1. {person.vorname}, {person.nachname}<br />
    2.  
    3. <f:for each="{person.kategorie}" as="kategorie" >
    4. {kategorie.name}
    5. </f:for>

    Gruß typonewbe

  • waldosparding waldospar...
    Jedi-Meister
    0 x
    309 Beiträge
    0 Hilfreiche Beiträge
    10. 12. 2010, 09:24

    Danke für die Antworten, aber das ist nicht das was ich gesucht habe.

    Da es sich um eine MM-Relation handelt, befindet sich in der Datenbank ja nur ein Verweis (uid der Kategorie).

    Wie komme ich jetzt sauber an der Kategorie-Namen. Ich habe in EXTBASE keinen dirkten Weg gefunden über die eingebauten Query-Funktionen.

    Gelöst habe ich es jetzt, in dem ich in der Repository-Klasse den Query selbst aufbaue, aber das kann ja nicht im Sinne von EXTBASE sein.

    vg

  • typonewbe typonewbe
    Sternenflotten-Admiral
    0 x
    197 Beiträge
    3 Hilfreiche Beiträge
    10. 12. 2010, 10:41

    Hi,

    ok so ganz verstehe ich dich nicht, aber genau so sollte es sein.

    Gib im Fluid Template einfach mal.
    <f:debug>{person}</f:debug> oder wie auch immer dein Object heißt ein.

    Dann solltest du ein Array sehen in dem zu jeder Person auch die Kategorie zu sehen ist.

    Falls dies nicht der Fall ist dann kannst du dir im Repository deine Abfrage zusammenbauen.

    ein Bsp. aus dem Buch TYPO3 Extensions mit Extbase und Fluid auf Seite 149 :) etwas an dein Problem angepasst.

    1. //im PersonRepository
    2.  
    3. public function findInCategory(Tx_yourYourExt_Domain_Model_Category $category) {
    4. $query = $this->createQuery();
    5. $query->matching($query->contains('category', $category));
    6. return $query->execute();
    7. }

    Und in deiner Action sollte es dann so klappen

    1. $personincategory = $this->personRepository->findInCategory($category);

    Nagle mich aber nicht darauf fest ;)

    Vielleicht hilft dir das ja weiter.

    Gruß typonewbe

  • 1