[TYPO3-german] Extbase - setOrderings() tut nicht

JCL - Johannes C. Laxander jc at laxander.com
Mon May 26 15:31:15 CEST 2014


Hallo Thomas,

vielen Dank für deine Hilfe. Leider nicht mit dem erhofften Ergebnis.
Ich denke auch, dass ich es noch nicht geschafft habe, den Sachverhalt eindeutig dazustellen. Es wird hier auch sehr spezifisch. Wenn es für dich in Ordnung ist, würde ich dir gerne direkt ein PDF schicken, in dem auch ein Modell-Diagramm enthalten ist, und aus dem der Sachverhalt etwas genauer hervorgeht. Außerdem ist ein Screenshot von einem Extbase Variable Dump vom Getter für CruisePriceAssignments im Cruise Domain Model enthalten.

Ich habe mittlerweile die Befürchtung, dass die Sortierung auf "normalem Weg" nicht funktionieren wird.

Gruß, Johannes.

> Thomas Nussbaumer
> Gesendet: Sonntag, 25. Mai 2014 17:05
> 
> Hi Johannes
> 
> Wenn ich deine Angaben richtig interpretiere besitzt das 
> Modell cruise ua. folgende Properties: tour (A, B, C, ...), 
> price (1000, 900, 950,
> ...) und cabin (Selectbox -> Modell cabin [X, D, L, ...]). 
> Mit folgender Abfrage im cruiseRepository bekommst du alle 
> Objekte mit der gewünschten
> Sortierung:
> 
> public function findAll...() {
>    $query = $this->createQuery();
>    $query->setOrderings(array(
>      'tour' =>
> \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
>      'price' =>
> \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
>    ));
>    return $query-->execute();
> }
> Liebe Grüsse. Thomas
> 
> Am 22.05.2014 19:57, schrieb JCL - Johannes C. Laxander:
> >
> > Hallo,
> >
> > leider ist das Ergebnis immer noch unsortiert. Aber mir ist 
> aufgefallen, dass ich mein Beispiel nicht vollständig und 
> vllt nich ganz korrekt dargestellt habe.
> >
> > Ich möchte über ein FLUIDTEMPLATE die Ergebnismenge in 
> einer bestimmten Sortierung ausgeben (cruise ist mein Domain Object):
> >
> > cruise-A -> priceAssignment-1: 1000 € -> cabinCategory-1: code=X 
> > cruise-A -> priceAssignment-2:  900 € -> cabinCategory-2: code=D 
> > cruise-A -> priceAssignment-3:  950 € -> cabinCategory-3: code=L 
> > cruise-B ...
> >
> > Sortiert nach cabinCategory.code:
> >
> > cruise-A -> Kategorie-D, 900 €
> > cruise-A -> Kategorie-L, 950 €
> > cruise-A -> Kategorie-X, 1000 €
> >
> > Im Moment entspricht die Sortierung der cabinCategory ID, 
> also 1,2,3 und somit X,D,L.
> > Wo und wie muss ich mein setOrderings() angeben damit ich 
> die gewünschte Sortierung erhalte???
> >
> > Gruß, Johannes.
> >
> >
> >> JCL - Johannes C. Laxander
> >> Gesendet: Samstag, 17. Mai 2014 23:45
> >>
> >> Hallo Thomas,
> >>
> >> danke für den Hiweis, da habe ich das wohl falsch verstanden und 
> >> angewendet. Ich werde es nach deinem Vorschlag machen.
> >>
> >> Johannes.
> >>
> >>> [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag 
> von Thomas 
> >>> Nussbaumer
> >>> Gesendet: Samstag, 17. Mai 2014 10:52
> >>>
> >>> Hi Johannes
> >>>
> >>> Ich verwende folgende Repository-Klasse um *immer* zu 
> sortieren. Im 
> >>> Controller genügt dann der Aufruf von findAll(). In 
> deiner Funktion 
> >>> ist $query-->setOrderings(...
> >>> nur ein Zusatz. Es fehlen $query-->matching(... und return 
> >>> $query-->execute();
> >>>
> >>> /**
> >>>    * A repository for person
> >>>    */
> >>> class Tx_Kernaarau_Domain_Repository_PersonRepository extends 
> >>> Tx_Extbase_Persistence_Repository {
> >>>
> >>> 	protected $defaultOrderings = array('name' => 
> >>> Tx_Extbase_Persistence_QueryInterface::ORDER_ASCENDING);
> >>> }
> >>> Liebe Grüsse. Thomas
> >>> (Bitte entschuldige meinen Tippfehler vor einer Woche)
> >>>
> >>> Am 16.05.2014 10:42, schrieb JCL - Johannes C. Laxander:
> >>>>
> >>>> Hallo,
> >>>>
> >>>> ich möchte die Ergebnismenge einer 1:n Relation in einer
> >>> bestimmten Sortierung ausgeben:
> >>>>
> >>>> cruise-A -> Kategorie-X, 1000 €
> >>>> cruise-A -> Kategorie-D, 900 €
> >>>> cruise-A -> Kategorie-L, 950 €
> >>>>
> >>>> Sortiert:
> >>>>
> >>>> cruise-A -> Kategorie-D, 900 €
> >>>> cruise-A -> Kategorie-L, 950 €
> >>>> cruise-A -> Kategorie-X, 1000 €
> >>>>
> >>>> Dafür habe ich in der Repository-Klasse diesen Code:
> >>>>
> >>>> public function findAllSortByCabinCategory() {
> >>>>     $query = $this->createQuery();
> >>>>     $query->setOrderings(array(
> >>>>       'cabinCategory' =>
> >>> \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
> >>>>     ));
> >>>> }
> >>>>
> >>>> Funktionsaufruf im Controller:
> >>>>
> >>>> $cabinPricePerPersons =
> >>>>
> >> $this->cabinPricePerPersonRepository->findAllSortByCabinCategory();
> >>>> $this->view->assign('cabinPricePerPersons',
> >> $cabinPricePerPersons);
> >>>>
> >>>> Die Ausgabe erscheint aber nach wie vor "unsortiert".
> >>> Jemand eine Erklärung dafür? Wo liegt der Fehler?
> >>>>
> >>>> Gruß, Johannes.
> >>>>
> >>>
> >>> _______________________________________________
> >>> 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