where v šabloně – nevidím chybu
- kloban
- Člen | 123
Ahoj, potřebuji vypsat jen platby s id 3, tak si je chci uložit doi proměnné $platbaTed a následně projet foreachem. Přiřazení do platba teď ale selže (chyba: htmlspecialchars() expects parameter 1 to be string, object given).
Co mám v špatně? Nějak to nevidím.
{$platbaTed = $platby->where("id_zakaznik_sluzba", "3")}
Díky Dan
- kloban
- Člen | 123
Díky. :-) Ještě jsem teď narazil na problém, že když to mám zanořené ve {foreach} tak se mi v každém, cyklu přidá další where podmínka. Takže tam je v posledním cyklu několik where podmínek spojených operátorem AND. Jak udělat aby v každém cyklu byla vždy jedna where podmínka (v každém cyklu potřebuji jinou).
- kloban
- Člen | 123
Mám tento kód, kde v proměnné $s->id je v prvním průchodu cyklem „2“ a v druhém „3“.
{foreach $platby->where("id_zakaznik_sluzba", $s->id) as $platba}
{$platba->castka}
{/foreach}
V prvním cyklu nette vygeneruje:
SELECT `id`, `castka`
FROM `platba`
WHERE (`id_zakaznik_sluzba` = 2)
Což je v pohodě, ale v druhém cyklu vygeneruje:
SELECT `id`, `castka`
FROM `platba`
WHERE (`id_zakaznik_sluzba` = 2) AND (`id_zakaznik_sluzba` = 3)
A tam bych chtěl pouze
WHERE (`id_zakaznik_sluzba` = 3)
- Mariocz
- Člen | 52
to vypadá jako kdyby při dalším průchodu bylo v $s->id pole. zkus {dump $s->id}
pokud od DB očekáváš jen jeden řádek tak je zbytečný foreach, místo toho použij něco takovýho:
{var $platba $platby->where("id_zakaznik_sluzba", $s->id)->fetch()}
{$platba->castka}
bylo by lepší si částky který budeš potřebovat připravit už v presenteru do pole a pak vypsat
- sKopheK
- Člen | 207
$platby
je pravděpodobně objekt třídy
\Nette\Database\Table\Selection
, nad kterým voláš jeho metody.
Několikanásobné volání where()
podmínky přidává, nikoli
upravuje, nějaké změny, resp. nová metoda, která by nahrazovala, je
v nedohlednu – viz. https://forum.nette.org/…re-nahrazeni.
Jedno z řešení by mohlo být následovné
{foreach ... as $s}
{var $platby_alt = clone $platby}
{foreach $platby_alt->where("id_zakaznik_sluzba", $s->id) as $platba}
...
{/foreach}
{/foreach}