Созонов Алексей

Веб-разработчик

EntityFieldQuery и Drupal 8

07.03.2017

EntityFieldQuery остался в друпале 8. И это хорошо! Так как он является удобным инструментом при разработке веб-сайта.

Пример запроса:

<?php
$query = \Drupal::entityQuery('node')
    -&gt;condition('status', 1)
    -&gt;condition('changed', REQUEST_TIME, '&lt;')
    -&gt;condition('title', 'cat', 'CONTAINS')
    ->condition('field_tags.entity.name', 'cats');

$nids = $query->execute();

if ($nids) { 
  $node = entity_load('node', $nids[1]);
  $nodes = entity_load_multiple('node', $nids);
  $node_storage = $container->get('entity.manager')->getStorage('node');
}

Примечание: В drupal 8 нет разницы между propertyCondition и fieldCondition.

Еще один пример:

$query = \Drupal::entityQuery('node')
    ->condition('status', 1)
    ->condition('changed', REQUEST_TIME, '&lt;');

$group = $query->orConditionGroup()
    ->condition('title', 'cat', 'CONTAINS')
    ->condition('field_tags.entity.name', 'cats');

$nids = $query->condition($group)->execute();

#Drupal 8