Рейтинг:2

Как я могу загрузить последние девять созданных узлов?

флаг cn

Я хочу получить последние девять узлов в хуке предварительной обработки. Я использую следующий код, но он возвращает все Новости узлы.

$entities = \Drupal::entityTypeManager()->getStorage('node')->loadByProperties(['type' => 'news']);

Можно ли загрузить только последние девять созданных узлов, используя загрузить по свойствам ()?

Рейтинг:6
флаг us

загрузить по свойствам () просто загружает сущности, учитывая значение некоторых их свойств. Он не сортирует объекты по каким-либо критериям и не возвращает последние X объектов. Для этого вам нужно использовать экземпляр, возвращаемый \Drupal::entityQuery().

$query = \Drupal::entityQuery('узел');
$запрос->проверка доступа(ЛОЖЬ)
  ->условие('entity_type', 'новости')
  ->сортировать('изменено', 'DESC')
  -> диапазон (0, 9);

$nids = $запрос->выполнить();

$ниды будет содержать массив идентификаторов узлов, которые вы можете использовать для загрузки узлов, например, с помощью \Drupal::entityTypeManager()->getStorage('node')->loadMultiple($nids).

я использовал проверка доступа(ЛОЖЬ) чтобы Drupal не возвращал только те узлы, к которым имеет доступ пользователь, вошедший в систему в данный момент. Чтобы позволить Drupal возвращать только те узлы, к которым имеет доступ текущий вошедший в систему пользователь, эту строку необходимо удалить.

mauzilla avatar
флаг cn
отличный ответ, спасибо за помощь

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.