Duální validace
- Patrik Votoček
- Člen | 2221
Už nějáký čas se snažím přijít na to jak pořešit problémek duální validace. A to že musím validovat data v modelu i v případném formuláři (moc DRY mě to teda nepřipadá). Protože já jakožto od přírody líný programátor (proč něco psát dvakrát) nechci zbytečně psát věci 2x…
Je to vlastně jediná věc která mě brzdí v napsání jednoduchého scaffoldingu pro nette (ještě teda čekám na romanův datagrid – proč znova vynalézat kolo že?).
Zatím to řeším tak že mám u jednotlivých položek metodu která vrátí prvek formuláře i s předdefinovanýmy pravidly (podle toho co jsem zadal při nastavování položky). Ale pořád mě to připadá jako takové drbání levou rukou za pravím uchem. Prostě si myslím že validace by měla být jenom v modelu.
David tady psal že se něco chystá https://forum.nette.org/…iewtopic.php?… ptal jsem se kdy to asi tak bude a bylo mě odpovězeno ale po 12ti dnech pořád nic. A tak se ptám jak to zatím řešíte vy?
- _Martin_
- Generous Backer | 679
Zatím validaci provádí formulář, data se potom překonvertují do
vhodné podoby pro model a předají se modelu ke zpracování. Což asi není
ideální ve smyslu znovupoužitelnosti modelu (no, alespoň díky dibi se
nesmysly do DB neuloží). Samozřejmě, že logičtější je, aby data
kontrolovala ta jednotka, která je i ukládá. Ale někdy i aplikace
potřebuje přidat vlastní validační pravidlo. Osobně se mi cesta „model
vytvoří položku i s pravidly“ a „aplikace může pravidla přidat“
zdá nejlepší. Ale je třeba zohlednit i potřeby pohledu
a
umožnit formuláři měnit vzhled (kdo má rozhodovat, zda datum měním
DatePickerem nebo obyčejným textovým políčkem)?
- Patrik Votoček
- Člen | 2221
_Martin_ napsal(a):
Osobně se mi cesta „model vytvoří položku i s pravidly“ a „aplikace může pravidla přidat“ zdá nejlepší.
Přesně takhle to zatím funguje… :-)
_Martin_ napsal(a):
Ale je třeba zohlednit i potřeby
pohledu
a umožnit formuláři měnit vzhled (kdo má rozhodovat, zda datum měním DatePickerem nebo obyčejným textovým políčkem)?
To tam je taky proste jako poslední parametr při požadavku na formulářový prvek uvedeš typ prvku.
Editoval vrtak-cz (17. 5. 2009 18:18)
- romansklenar
- Člen | 655
Hmmm scaffolding? :) půjde to pak taky do Nette\Extras
? To by
byl velmi mocný nástroj na tvorbu administrací, pár lidí už i absenci
scaffoldingu Nette myslím vyčítalo…
Zajímalo by mě, jestli tu validaci v modelech nemá nějak hezky vyřešenou Jod, protože myslím že od něj to tu poprvé padlo (s odkazem na RoR).