Întorc știri pe pagina mea de pornire într-un carusel. Folosesc interogarea de mai jos pentru a returna ultimele 9 articole pe baza datei „create”. Cu toate acestea, clientul dorește să datați unele articole (deci admin > conținut > editați nodul > creat de și schimba data creată). Totuși, acest lucru nu pare să funcționeze, deoarece continuă să returneze articolele în ordinea reală a datei în care au fost create, chiar dacă data a fost schimbată manual:
$interogare = \Drupal::entityQuery('nod');
$query->accessCheck(FALSE)
->condiție(„tip”, „știri”)
->condition('langcode', \Drupal::languageManager()->getCurrentLanguage()->getId(),"IN")
->sort('creat', 'DESC')
->interval(0, 9);
$nids = $query->execute();
$entities = \Drupal::entityTypeManager()->getStorage('node')->loadMultiple($nids);
ce fac greșit? Se pare că funcționează bine în vizualizarea actuală a paginii de știri. Vizualizarea în sine are sortarea setată ca „Conținut: Creat pe (desc)” și aceasta returnează datele așa cum era de așteptat, dar interogarea preprocesorului nu.
EDITAȚI | ×:
Recomandarea actuală este să schimbați sortarea în „modificat”, dar, din păcate, acest lucru nu funcționează. Am impresia că problema este legată de traduceri. Următorul este primul rezultat din matrice. Am continuat în mod deliberat și am schimbat data „autorului” în 2002 pentru a mă asigura că este ultima, totuși, este încă primul. Dacă te uiți la valori însă, cred că aici se întâmplă problema:
[created] => Array
(
[da] => 1647950253
[x-default] => 1016357523
[es] => 1647950332
[fi] => 1647950277
[fr] => 1647949861
[nb] => 1647950235
[nl] => 1647950348
[sv] => 1647950211
[en-au] => 1647949797
[en-gb] => 1647947671
[en-us] => 1647947639
[bel-fr] => 1647950381
[bel-nl] => 1647950361
)
Pe baza acestui rezultat, este posibil ca sortarea să caute prima dată „creată”, fiind DA, dar în cazul nostru limbajul este x-implicit
Pot schimba sortarea pentru a mă asigura că este sortată după limba actuală?