Запросы. Работа с entityQuery в Drupal 8

В Drupal 8 больше нет EntityFieldQuery, но есть entity.query. И как с этим работать я покажу на примерах:

1. Вернёт опубликованные ноды.

$query = \Drupal::entityQuery('node')
    ->condition('status', 1);
 
$nids = $query->execute();

2. Вернёт опубликованные ноды, изменённые до текущего времени, в заголовках которых встречается "fanny" и с выбранным термином таксономии "fanny"

$query = \Drupal::entityQuery('node')
    ->condition('status', 1)
    ->condition('changed', REQUEST_TIME, '<')
    ->condition('title', 'fanny', 'CONTAINS')
    ->condition('field_tags.entity.name', 'fanny');
 
$nids = $query->execute();

3.Вернёт ноды в заголовках которых встречается "fanny" ИЛИ с выбранным термином таксономии "fanny". С мопощью orConditionGroup() мы можем группировать несколько условий.

$query = \Drupal::entityQuery('node')
    ->condition('status', 1)
    ->condition('changed', REQUEST_TIME, '<');
 
$group = $query->orConditionGroup()
    ->condition('title', 'fanny', 'CONTAINS')
    ->condition('field_tags.entity.name', 'fanny');
 
$nids = $query->condition($group)->execute();