it-swarm.com.de

Sortieren Sie mit entityTypeManager

Ich führe eine App aus, in der ich nach allen Knoten eines bestimmten Inhaltstyps suche.

$nids = \Drupal::entityTypeManager()
  ->getListBuilder('node')
  ->getStorage()
  ->loadByProperties([
    'type' => 'courses',
    'status' => 1,
]);

Ich suche nach einer Möglichkeit, die Ergebnisse in einem benutzerdefinierten Feld meiner Knoten zu sortieren.

EDIT: Ich verstehe nicht, was los ist. Dank @ 4k4 habe ich diese Abfrage geschrieben:

$query = \Drupal::entityTypeManager()
    ->getListBuilder('node')
    ->getStorage()
    ->getQuery();
$query->condition('type', 'post');
$query->condition('status', 1);
$query->condition('field_category', $k);
$query->sort('field_ordering', 'ASC');

$nids = $query->execute();
$nids = Node::loadMultiple($nids);

EIN var_dump auf $r[1] druckt nichts. Gleiches gilt für $r[2]. Aber $ results enthält meine Ergebnisse. Was ist los ? Die Sortierung funktioniert übrigens nicht.

2
Pauloscorps

Das Änderungsdatensatz sagt, wenn Sie entityTypeManager injiziert haben, verwenden Sie

$query = $this->entityTypeManager->getStorage('node')->getQuery();

Für Nicht-OOP-Code ist $query = \Drupal::entityQuery(); nicht veraltet und kann weiterhin verwendet werden.

Das verknüpfte Beispiel zum Sortieren einer Entitätsabfrage mithilfe von $query:

$query->condition('type', 'blog_post')
  ->sort('field', 'DESC');
$nids = $query->execute();
4
4k4