[TYPO3-german] Sortierung von Kindobjekten in extbase

Thomas Pronold mail at tomgrill.de
Fri Dec 16 11:13:24 CET 2011


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


More information about the TYPO3-german mailing list