Я возвращаю новости на свою домашнюю страницу в карусели. Я использую приведенный ниже запрос, чтобы вернуть последние 9 статей на основе даты «создания». Однако клиент хочет установить дату некоторых статей задним числом (поэтому admin > content > edit node > автор и измените дату создания). Однако это, похоже, не работает, поскольку статьи возвращаются в том порядке, в котором они были созданы, даже если дата была изменена вручную:
$query = \Drupal::entityQuery('узел');
$запрос->проверка доступа(ЛОЖЬ)
->условие('тип', 'новость')
->условие('langcode', \Drupal::languageManager()->getCurrentLanguage()->getId(),"IN")
->сортировать('создано', 'DESC')
-> диапазон (0, 9);
$nids = $запрос->выполнить();
$entities = \Drupal::entityTypeManager()->getStorage('node')->loadMultiple($nids);
Что я делаю не так? Кажется, он отлично работает в реальном представлении страницы новостей. Само представление имеет сортировку, установленную как «Содержимое: Создано (описание)», и это возвращает данные, как и ожидалось, но запрос препроцессора этого не делает.
РЕДАКТИРОВАТЬ:
Текущая рекомендация — изменить сортировку на «изменено», но это, к сожалению, не работает. У меня есть ощущение, что проблема связана с переводами. Ниже приведен первый результат в массиве. Я намеренно пошел дальше и изменил дату «авторства» на 2002 год, чтобы гарантировать, что она будет последней, но все же первой. Однако, если вы посмотрите на значения, я думаю, что проблема возникает здесь:
[создано] => Массив
(
[да] => 1647950253
[х-по умолчанию] => 1016357523
[эс] => 1647950332
[фи] => 1647950277
[фр] => 1647949861
[суб] => 1647950235
[nl] => 1647950348
[св] => 1647950211
[ru-ru] => 1647949797
[ru-ru] => 1647947671
[ru-ru] => 1647947639
[бель-фр] => 1647950381
[бел-нл] => 1647950361
)
Основываясь на этом результате, может случиться так, что сортировка ищет 1-ю «созданную» дату, являющуюся DA, но в нашем случае язык является x-по умолчанию.
Могу ли я изменить сортировку, чтобы обеспечить сортировку по фактическому языку?