[TYPO3-german] Sortierung von Kindobjekten in extbase

Daniel Gercke gercke at hnm.de
Mon Mar 19 21:02:42 CET 2012


Hallo Christopher,

ich möchte das Thema noch einmal aufgreifen. Ich denke ich habe alle 
deine Posts gelesen, verstanden habe ich es aber trotzdem nicht.
Okay ich habe deine Kurzschreibweise verstanden, aber die eigentliche 
Frage war ja, wie kann man auf Kindobjekte zugreifen und das sorting 
beeinflussen.

Angenommen ich habe ein Domain Objekt "Haus" und dieses steht in einer 
1:n Relation zu zu einem weiteren Domain Objekt "Zimmer". Dann möchte 
ich mit

haus->getZimmer();

die Zimmer nicht nach uid sortiert erhalten, sondern z.B. nach "Namen".

Wie stellt man das an? Muss ich wirklich den "Umweg" über ein Repository 
das ich extra instanziere gehen?

Gruß

Daniel


Am 16.12.2011 14:38, schrieb Seidel, Christopher:
> Hast du meine Antwort darauf nicht erhalten?
>
> Viele Grüße
>
> Christopher
>
>
> -----Ursprüngliche Nachricht-----
> Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von Christian Essl
> Gesendet: Freitag, 16. Dezember 2011 14:38
> An: German TYPO3 Userlist
> Betreff: Re: [TYPO3-german] Sortierung von Kindobjekten in extbase
>
> Wenn ich also Kindobjekte über den Aggregate-Root auslesen möchte, gibt es keine Sortiermöglichkeiten? Heißt das, ich darf jetzt schon im Voraus für den extension_builder einplanen, einfach für alle Modelle Repositorys einzuplanen, um später auch nach mehr als nur der uid sortieren zu können?
> Dann verstehe ich jetzt aber den Sinn nicht dahinter, warum man überhaupt auch über den Aggregate Root auf Kindobjekte zugreifen sollte...
>
> -----Ursprüngliche Nachricht-----
> Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von Thomas Pronold
> Gesendet: Freitag, 16. Dezember 2011 11:13
> An: German TYPO3 Userlist
> Betreff: Re: [TYPO3-german] Sortierung von Kindobjekten in extbase
>
> Schreib dir einfach im KindObjekt-Repository eine extra find-Methode und benutze dort das $query Objekt von extbase:
>
> Beispiel von:
>
> http://blog.typoplanet.de/2010/01/27/the-repository-and-query-object-of-extbase/
>
> public function findRecentByBlog(Tx_BlogExample_Domain_Model_Blog $blog, $limit = 5) { $query = $this->createQuery(); return $query->matching($query->equals('blog', $blog))
> ->setOrderings(array('date' =>
> Tx_Extbase_Persistence_QueryInterface::ORDER_DESCENDING))
> ->setLimit((integer)$limit)
> ->execute();
> }
>
> Das sollte dir hoffentlich weiterhelfen.
>
> Viele Grüße,
> Thomas Pronold
> http://www.tpronold.de
>
> Am 16.12.2011 08:31, schrieb Christian Essl:
>> Danke,
>>
>> aber dann müsste ich wieder meine Kindobjekte manuell über dieses Repository auslesen, wenn ich mich nicht irre?
>> Ich habe hier z.B. ein einfaches Modell "Calendar" mit 1:n-Relation zu "Events". Wenn ich jetzt einen Kalender mit all seinen Events ausgeben will, greife ich einfach auf das CalendarRepository zurück. Die Events werden dann ja automatisch mit der ObjectStorage-Konfiguration im Model nachgeladen, aber dann eben nur nach der default-Sortierung.
>> Wegen der Sortierung der Datensätze alleine ein EventRepository einzurichten und die Events dann manuell im Controller auszulesen kommt mir irgendwie recht umständlich vor. Gibt es da wirklich keine einfachere Lösung für ObjectStorage? Bin jetzt nämlich schon öfter mit extbase auf dieses Problem gestoßen, dass ich Objekte einfach nur nach einer anderen Sortierung ausgeben wollte.
>>
>> Gruß,
>> Christian
>>
>> -----Ursprüngliche Nachricht-----
>> Von: typo3-german-bounces at lists.typo3.org
>> [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von Alexander
>> Dick
>> Gesendet: Donnerstag, 15. Dezember 2011 20:09
>> An: typo3-german at lists.typo3.org
>> Betreff: Re: [TYPO3-german] Sortierung von Kindobjekten in extbase
>>
>> Hallo Christian,
>>
>> sieh dir mal die defaultOrderings an.
>>
>> definiere das im entsprechenden Repository des Kind Objektes:
>>
>> protected $defaultOrderings = array(
>>      'startdate' =>
>> Tx_Extbase_Persistence_QueryInterface::ORDER_DESCENDING
>> );
>>
>> LG
>> Alex
>>
>> Am 15.12.2011 15:12, schrieb Christian Essl:
>>> Hallo,
>>>
>>> Ich versuche jetzt schon den halben Tag, Kindobjekte (einfache 1:n-Relation) innerhalb meines ORM über ein manuelles Feld (ein Datum) anstatt der uid zu sortieren.
>>>
>>> Zunächst einmal habe ich herausgefunden, dass sich die Sortierung von extbase über das TCA mit  "foreign_sortby  =>    'startdate'" bewerkstelligen lässt. Allerdings ist das auch keine Lösung, da dieses Feld dann intern im Backend für die Sortierung verwendet wird und deshalb die startdate-Werte überschrieben werden.
>>> Ist es irgendwie sinnvoll möglich, die Kind-Objekte zu sortieren?
>>>
>>> Wenn ich die Kind-Objekte nicht mehr direkt über den Aggregate Root auslese, sondern darauf angewiesen wäre, diese manuell mit eigenen Querys auszulesen, würde das ja irgendwie den Sinn vom ganzen Object Relational Model untergraben, wenn ich das alles wegen einer einfachen Sortierung nochmal auslesen müsste?
>>>
>>> Gruß,
>>> Christian
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list