logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll
18/06/2025, by Ivan

Dodavanje polja

Da biste dodali polje u Select upit, koristite metod addField():

$title_field = $query->addField('n', 'title', 'my_title');

Gornji kod će uputiti upit da izabere polje „title“ iz tabele sa aliasom „n“ i dodeli mu alias „my_title“. Ako alias nije naveden, on će biti automatski kreiran. U velikoj većini slučajeva generisani alias biće jednostavno ime polja. U ovom primeru to će biti „title“. Ako taj alias već postoji, alias će biti ime tabele i ime polja. U ovom primeru to će biti „n_title“. Ako i taj alias već postoji, biće dodat brojač dok se ne pronađe slobodan alias, npr. „n_title_2“.

Obratite pažnju da ako pravite i popunjavate upit sami i ne navedete alias, a podrazumevani alias nije dostupan, gotovo sigurno imate grešku u kodu. Međutim, ako pišete implementaciju hook_query_alter(), ne možete sa sigurnošću znati koji aliasi su već zauzeti, zato uvek treba koristiti generisani alias.

Dodavanje više polja

Da biste izabrali više polja, pozovite addField() više puta redosledom koji želite. Obratite pažnju da u većini slučajeva redosled polja ne bi trebalo da bude bitan, a ako jeste, verovatno postoji greška u poslovnoj logici modula.

Alternativno, možete koristiti metod fields() da dodate više polja odjednom.

$query->fields('n', ['nid', 'title', 'created', 'uid']);

Ovaj metod je ekvivalentan pozivanju addField() četiri puta, po jednom za svako polje. Međutim, fields() ne podržava navodjenje aliasa za polje. Takođe vraća sam objekat upita, pa se može lančano pozivati, ali ne vraća nikakve generisane alias-e. Ako vam je potreban generisani alias, koristite addField() ili getFields() da pristupite sirovoj strukturi unutrašnjih polja.

Pozivanje fields() bez liste polja rezultira upitom „SELECT *“.

$query->fields('n');

Ovo će uključiti „n.*“ u listu polja upita. Obratite pažnju da alias-i neće biti kreirani. Ako tabela koja koristi SELECT * sadrži polje koje se takođe eksplicitno koristi iz druge tabele, može doći do konflikta imena polja u rezultujućem skupu. U tom slučaju, u skupu rezultata će biti samo jedno od polja sa istim imenom. Iz tog razloga, korišćenje SELECT * se ne preporučuje.

Vraćanje samo jednog polja korišćenjem fetchField

Koristite metod fetchField da vratite samo jedno polje iz upita, na primer sledeće (malo jednostavan primer):

$query = $connection->select('node', 'n');
$query->condition('n.nid', 123);
$query->addField('n', 'title');
$result = $query->execute();
return $result->fetchField();
Source URL:

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.