J'ai besoin de filtrer les entités en fonction de la valeur d'un champ à choix multiples.
Je veux que ma requête renvoie toutes les entités sauf celles qui ont une valeur donnée ('doe
' pour cet exemple).
valeurs à choix multiples
foo|Choice 1
bar|Choice 2
doe|Choice 3
MyController.php
$query = \Drupal::entityQuery('node')
->condition('type', 'order');
$nids = $query->execute();
$entities = \Drupal::entityManager()->getStorage('node')->loadMultiple($nids);
J'ai donc besoin de quelque chose comme ci-dessous:
$query = \Drupal::entityQuery('node')
->condition('type', 'order')
->condition('field_multiple_choice', '!=', 'doe');
$nids = $query->execute();
$entities = \Drupal::entityManager()->getStorage('node')->loadMultiple($nids);
Comment puis-je faire ? Merci d'avance.
Je l'ai trouvé !
Je n'étais pas loin, je viens d'inverser les deux derniers paramètres de la condition.
$query = \Drupal::entityQuery('node')
->condition('type', 'order')
->condition('field_multiple_choice', 'doe', '!=');
$nids = $query->execute();
$entities = \Drupal::entityManager()->getStorage('node')->loadMultiple($nids);
Comme le dit le doc, fonction publique QueryInterface :: condition prenez les arguments suivants:
condition( $field , $value = NULL , $operator = NULL , $langcode = NULL )