Filtrovat výpis proměnné v Latte šabloně
- egin_28
- Člen | 10
Ahoj,
lze nějak filtrovat, kolik toho mám vypsat z proměnné do latte šablony? Něco jako SQL dotaz BETWEEN.
Rád bych v latte vypsal jen něco mezi určitými znaky/stringy z DB.
{foreach $foods as $food}
{$food|between „mezi timto“ and „a timto“}
{/foreach}
Nejlépe nějak takto :)
Díky
- egin_28
- Člen | 10
duke napsal(a):
Pokud ti rozumím správně a jde ti o lexikografické filtrování, tak např. takto:
{foreach $foods as $food} {continueIf $food < $from || $food >= $to} {$food} {/foreach}
Nicméně vhodnější je si to vyfiltrovat už v presenteru/komponentě.
Díky, to by mi také pomohlo. Nicméně to asi používám špatně:
{var $test = 50}
{foreach $foodsFromHusa as $food}
{continueIf $food->id == $test}
{$food->foodFromHusa}
{/foreach}
Tento kód vrátí obsah z DB, přestože ve sloupci id žádná hodnota 50 není. Když to neguji, tak se nic nevrátí.
Asi půjdu cestou filtrování v presenteru.
Editoval egin_28 (24. 8. 2018 16:22)
- duke
- Člen | 650
Špatně jsi porozuměl tomu, co makro continueIf
dělá. Dělá
(podmíněně) totéž, co dělá php příkaz continue
v cyklech
(for, while, foreach, atp.). Tj. ukončí danou iteraci a pokračuje
s příští (tj. přeskočí zbytek kódu do konce dané iterace cyklu). Tzn.,
že pokud – jak říkáš – ve sloupci id žádná hodnota 50 není, pak
se continue nevykoná a tedy se to chová, jakobys tam žádné continueIf
neměl. Kdyby tam hodnota 50 naopak byla, tak by ji to přeskočilo. Chceš-li
to tedy omezit pouze na zobrazení položky s id 50, musíš tam mít:
{continueIf $food->id !== $test}
Editoval duke (24. 8. 2018 16:44)
- egin_28
- Člen | 10
duke napsal(a):
Špatně jsi porozuměl tomu, co makro
continueIf
dělá. Dělá (podmíněně) totéž, co dělá php příkazcontinue
v cyklech (for, while, foreach, atp.). Tj. ukončí danou iteraci a pokračuje s příští (tj. přeskočí zbytek kódu do konce dané iterace cyklu). Tzn., že pokud – jak říkáš – ve sloupci id žádná hodnota 50 není, pak se continue nevykoná a tedy se to chová, jakobys tam žádné continueIf neměl. Kdyby tam hodnota 50 naopak byla, tak by ji to přeskočilo. Chceš-li to tedy omezit pouze na zobrazení položky s id 50, musíš tam mít:{continueIf $food->id !== $test}
Ano, pochopil jsem to přesně obráceně. Děkuji za vysvětlení.