Sortierung von getList

Hallo zusammen,

ich möchte gerne eine LIste von Unterkategorien nach den Namen sortieren.

$categoryResource = Manager::getResource('category');
$tmp_criteria = array("parentId" => $data['topCategory']);
$tmp_order = array(
	array(
		'property' => 'name',
		'direction' => 'ASC',
	)
);
$result = $categoryResource->getList(0,1000, $tmp_criteria, $tmp_order);

So funktioniert es leider nicht. Wie muss das deklariert werden?

Grüße
sunflower

Hallo Sunflower,

Du hast alles richtig deklariert. Aber die Category Resource unterstützt leider keine komplett eigene Sortierung.

In der Funktion getListQueryBuilder des Category Repository werden die von Dir angegebenen Sortierungen

nur zusätzlich zur aufsteigenden Sortierung nach parentId und position hinzugefügt.

$builder->addOrderBy('c.parentId');
$builder->addOrderBy('c.position');
if (!empty($orderBy)) {
  $builder->addOrderBy($orderBy);
}

Wenn Du unbedingt die getList Funktion der Category Ressource nutzen möchtest,

bleibt Dir nur ein after Hook auf die getListQueryBuilder Methode des Category Repository.

Mit dem QueryBuilder Objekt kannst Du dann einfach via

 

$queryBuilder->orderBy('name','ASC') 

 

die komplette Sortierung des Query überschreiben.

  
1 „Gefällt mir“

Prima, danke für die Info.