Duální validace

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Patrik Votoček
Člen | 2221
+
0
-

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
+
0
-

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
+
0
-

_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
+
0
-

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).