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

Thomas Nussbaumer typo3 at thomasnu.ch
Sun May 25 17:04:58 CEST 2014


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
>>
>



More information about the TYPO3-german mailing list