endCondition – return parent vs. control
- Stranger
- Člen | 4
Dotaz/Návrh na změnu.
Mám následující control na formuláři:
$this->addText('GPS', 'GPS:')
->setAttribute('placeholder', '99.999999N, 99.999999E')
->addCondition(self::FILLED)
->addRule(self::REGEXP, 'Vyžadovaný formát formát 99.999999N, 99.999999E', "/^(\-?[0-9]{1,2}\.[0-9]{6,9}.?,\s*\-?[0-9]{1,2}\.[0-9]{6,9}.?)$/")
->endCondition()
->getLabelPrototype()->class('control-label', TRUE);
kde po endCondition chci ještě nastavit třídu pro Label, což nelze jelikož endCondition vrací Nette\Forms\Rules, nebylo by lepší v endCondition vracet namísto:
return $this->parent;
radši:
return $this->control;
díky čemuž by se mohlo dále pokračovat v konfiguraci controlu?
Nebo proč je dobré vracet parent?
- duke
- Člen | 650
Podmínky mohou být i do sebe zanořené, takže je někdy třeba volat endCondition() vícekrát za sebou. Např.:
$control
->addCondition(Form::FILLED)
->addConditionOn($anotherControl, Form::FILLED)
->addConditionOn($yetAnotherControl, Form::FILLED)
->toggle('someToggle')
->endCondition()
->endCondition()
->elseCondition()
->toggle('anotherToggle');
Editoval duke (10. 5. 2015 17:30)
- Stranger
- Člen | 4
duke napsal(a):
Podmínky mohou být i do sebe zanořené, takže je někdy třeba volat endCondition() vícekrát za sebou. Např.:
$control ->addCondition(Form::FILLED) ->addConditionOn($anotherControl, Form::FILLED) ->addConditionOn($yetAnotherControl, Form::FILLED) ->toggle('someToggle') ->endCondition() ->endCondition() ->elseCondition() ->toggle('anotherToggle');
ok, ale stejně bych očekával, že po ukončení všech condition se vrátím zpět na control…
- Myiyk
- Člen | 321
stačí použít
$this['GPS']->getLabelPrototype()->class('control-label', TRUE);
Jinak by endCondition muselo vracet nějakou magickou třídu, která by byla schopná posloužit jak na podmínky, tak na nastavení toho pole. A magické (umí hromadu věcí) třídy v sobě nesou vyšší riziko chyby.