VALIDACE „Datum od“ a „datum do“, tak aby „datum od“ nemohlo byt pozdeji nez „datum od“

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

Ahoj,
jak rika popisek, nemate nekdo vyreseno, jak postavit v nette validaci, aby neslo zadat do inputu „datum od“ pozdejsi datum jak do inputu „datum do“?

Diky moc!

Ja

jiri.pudil
Nette Blogger | 1029
+
0
-

Asi na to budeš muset napsat vlastní validační pravidlo:

$form['date_from']->addRule(function (Nette\Forms\IControl $from, Nette\Forms\IControl $to) {
	return strtotime($from->value) < strtotime($to->value);
}, 'Datum od nesmí být později než datum do.', $form['date_to']);
Ja
Člen | 260
+
0
-

Jak se do promennych a jak do promenne $to dostanes hodnotu z $form[‚date_to‘]?

jiri.pudil
Nette Blogger | 1029
+
0
-

Do addRule můžeš zadat kromě konstant typu Form::FILLED taky callback nebo anonymní funkci (což je tenhle případ). Koneckonců i ty konstanty jsou jenom zkratkou k nějakému callbacku.

Callbacku/anonymní funkci se předá Control, nad kterým voláš addRule (v tomhle případě $form['date_from']) a – pokud existuje – třetí argument metody addRule (v tomhle případě $form['date_to']) – o to se postará Nette.

Editoval jiri.pudil (20. 12. 2012 18:34)