Puncte:0

Preprocesorul nu returnează știri pe baza datei corecte de creare

drapel cn

Î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ă?

Kevin avatar
drapel in
Tipul de proprietate poate fi „modificat”. Notă secundară, eliminarea verificării accesului și nicio verificare a stării publicate ar putea scoate la iveală lucruri pe care nu le doriți. O altă modalitate de a face acest lucru ar fi să utilizați un câmp de dată dedicat în loc de o proprietate de nod.
mauzilla avatar
drapel cn
@Kevin Îmi pare rău, nu știu dacă înțeleg în ceea ce privește tipul de proprietate care s-ar putea fi schimbat?
drapel cn
Kevin înseamnă probabil că ar putea fi necesar să utilizați câmpul „modificat” de pe nod (ora ultimei actualizări) în loc de „creat”, nu că o proprietate s-a schimbat. Dar dacă funcționează corect în vizualizări, aș suspecta o problemă de cache, deoarece interogarea dvs. de entitate arată bine
leymannx avatar
drapel ne
`->sort('schimbat', 'DESC')`
mauzilla avatar
drapel cn
Am actualizat întrebarea, cred că mă apropii, dar nu sunt sigur cum să modific sortarea?
mauzilla avatar
drapel cn
Am reușit să urmăresc problema. Deoarece nu toate datele scrise ale traducerilor au fost actualizate, se pare că data creată utilizată este cea mai „nouă” traducere.
apaderno avatar
drapel us
Unde mai exact folosești acel cod? Titlul vorbește despre *preprocesor*, dar nu sunt clar dacă asta înseamnă un cârlig de preproces sau altceva.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.