Puncte:6

Ce metodă ar trebui să folosesc în loc de Drupal\Core\Entity\Query\Sql\Query::addExpression()?

drapel my

Folosesc Entity Query pentru a selecta noduri de două tipuri diferite. Preluarea pare să funcționeze, dar trebuie să sortez valorile returnate. Ambele tipuri de conținut au câmpuri de dată diferite. Știu că aș putea face asta cu $query->addExpression('COALESCE( data_câmpului_1, data_câmpului_2)', 'Data'); $interogare->sort('Data', 'DESC'); dar addExpression() nu este o metodă existentă, iar codul aruncă această excepție.

Eroare: apel la metoda nedefinită Drupal\Core\Entity\Query\Sql\Query::addExpression()

Cum pot sorta pe mai mult de 2 câmpuri de dată?

Puncte:6
drapel cn

Interogările de entitate nu acceptă expresii. Pentru a o rezolva, adăugați o etichetă la interogare:

$query->addTag('mymodule');

Apoi implementați hook_query_alter(), verificați eticheta și adăugați expresia acolo:

function mymodule_query_alter(Drupal\Core\Database\Query\AlterableInterface $query) {
  if ($query instance of Drupal\Core\Database\Query\SelectInterface && $query->hasTag('mymodule')) {
    $interogare->addExpression('...');
  }
}
Akansha avatar
drapel my
Mulțumesc, a funcționat și hook_query_TAG_alter() funcționează și aici. Adăugarea pentru referințe viitoare.

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.