Komponenta, persistentní parametry a jejich výchozí hodnoty?
- joe
- Člen | 313
Ahoj,
vytvořil jsem si komponentu na filtrovací formulář a po odeslání formuláře bych chtěl zobrazit tlačítko na zrušení filtru. Každý input ve formuláři má „svůj“ persistentní parametr.
Po odeslání formuláře nastavím persistentní parametry a přesměruji na „default“, takže dostanu URL s parametrama, které nebudou prefixované názvem komponenty.
Po přesměrování ale ztrácím kontrolu nad tím, jestli formulář byl nebo nebyl odeslán, nevím tedy, kdy tlačítko „Zrušit filtr“ zobrazit a kdy ne. Poradí někdo? :-)
Možná by i stačilo porovnat aktuální hodnoty parametrů s výchozíma parametrama persistentních parametrů, ale nic takového asi není možné (?)
Díky za odpovědi.
- martinprihoda
- Člen | 8
Defaultní hodnotu si můžeš definovat jako u každého parametru, a nebo porovnávej vůči NULL.
<?php
/** @persistent */
public $parameter = -1
?>
Editoval martinprihoda (7. 4. 2015 9:07)
- joe
- Člen | 313
To samozřejmě můžu a taky to dělám, pak ale nemůžu porovnávat s NULL, protože v persistentních parametrech mám i pole.
/** @persistent */
public $foo = array(
'bar' = 5,
)
A já asi nijak nejsem schopný po přesměrování zjistit (nevím, ptám se), jaké ty výchozí hodnoty byly, abych je mohl porovnat a rozhodnout, jestli se filtr aplikoval (formulář se odeslal, persistentní hodnoty změnily svou výchozí hodnotu) a já mohl zobrazit tlačítko pro zrušení filtru.
- joe
- Člen | 313
David Matějka
Díky, že mě něco podobného nenapadlo dřív, přesně to jsem hledal, konkrétně
dump(get_class_vars(get_class($this)));
Blujacker
To nejde, potřebuji to řešit po redirectu, takže isSubmitted()
vrátí vždy FALSE
.
Je vůbec optimální řešit filtr tak, že pro každou položku formuláře bude persistentní parametr?