Thursday, May 8, 2014

Wie kann ich die Sortierung von Datensaetzen in einem ExtBase-Repository beeinflussen?

Eine default/Standard-Sortierung kann folgendermassen gesetzt werden:

Im Deklarations-Bereich eines Repositories (.../Classes/Domain/Repository/...) diese Variable setzen, hier z.b. fuer die Sortierung ueber das Feld "sorting" (wie im TYPO3-Backend):

protected $defaultOrderings = array("sorting"=> Tx_Extbase_Persistence_QueryInterface::ORDER_ASCENDING);

bzw. in Namespace-Schreibweise

protected $defaultOrderings = array("sorting"=>
\TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING);


Auch mehrere Sortierungen sind moeglich:

protected $defaultOrderings = array( 
    "title"=> \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
    "name"=> \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
);


Im Programmcode kann die Sortierung auch naetraeglich geaendert werden:

$query->setOrderings(
    "title"=> \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
    "name"=> \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
);

Eine Menge hilfreiche Code-Schnipsel fuer TYPO3 finden sich auf der Seite von in2code


http://www.in2code.de/community/snippet-datenbank/snippets/liste/?tx_in2snippets_pi1[controller]=Snippet