EntityFieldQuery и Drupal 8
07.03.2017
EntityFieldQuery остался в друпале 8. И это хорошо! Так как он является удобным инструментом при разработке веб-сайта.
Пример запроса:
<?php
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->condition('changed', REQUEST_TIME, '<')
->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, '<');
$group = $query->orConditionGroup()
->condition('title', 'cat', 'CONTAINS')
->condition('field_tags.entity.name', 'cats');
$nids = $query->condition($group)->execute();
