DRY přístup a podmíněná pravidla formulářů
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- duke
- Člen | 650
Řeším teď jeden projekt, kde se ve formuláři vyskytuje netriviální logika podmíněných pravidel, podle kterých se aktivují toggles a nastavují validační pravidla inputů skrývaných příslušným togglem a tato logika se mi tam několikrát opakuje – jednou tam je pro aktivaci toggles a pak několikrát pro validační pravidla jednotlivých skrývaných inputů. Existuje nějaký elegantní způsob, jak tuto logiku v kódu neopakovat?
Problém by asi vyřešilo něco jako podmínky podle toggles (či jejich obdoby určené čistě k těmto účelům), tj. např.:
$fooInput->addConditionOn(...)
... // some complex logic
->toggle('barToggle')
->elseCondition()
... // more complex logic
->toggle('bazToggle')
->endCondition();
$barInput->addConditionOnToggle('barToggle') // aktuálně není v Nette takto možné
->setRequired($barRequiredMessage);