Form::isSubmitted a Form::setDefaults
- kravčo
- Člen | 721
Zatiaľ som sa s použitím metódy Form::setDefaults()
stretol
výlučne v prípade nastavovania počiatočných hodnôt formulára: buď ako
východzie, alebo – pri editačnom formulári – nastavené podľa
nejakých dát z modelu. Takže kedykoľvek som ju použil, obaľoval som ju
podmienkou !Form::isSubmitted()
:
// v továrničke
$form = new AppForm;
...
$form->addSubmit(...)
->onCheck[] = ...;
if (!$form->isSubmitted()) {
$form->setDefaults(array(
...
));
}
Má táto metóda i iné využitie – v prípade odoslaného formulára? (okrem zrejmého, že premaže poslané dáta). Mojim cieľom je zbaviť sa opakujúcej podmienky.
S názvom funkcie mi správanie v tomto prípade – premazanie
odoslaných dát – príde ako protichodné. Logickejšie sa mi pre tento
prípad vidí napríklad názov setValues()
. Pričom
setDefaults()
by som implementoval ako:
public function setDefaults($array) {
if (!$this->isSubmitted()) {
$this->setValues($array);
}
}
Čo myslíte?
Editoval kravco (9. 4. 2009 0:39)
- David Grudl
- Nette Core | 8218
Zrovna včera jsem nad tím přemýšlel :-) Váhal jsem, jestli taková změna bude nebo nebude zpětně kompatibilní, ale v podstatě by měla být.