Validační pravidlo pro rozmezí dat

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

Mám formulář a v něm dvě textová pole, ve kterých je datum, reprezentují rozmezí termínu OD a DO. Jak udělat validaci tak, aby datum konce termínu (DO) bylo vždy větší nebo rovno datu začátku termínu (OD)?

Je to určitě jednoduchá otázka, potřeboval bych poradit, jak předat mé vlastní validační funkci obsah obou polí.

vlki
Člen | 218
+
0
-

Neměl by to být problém pomocí vlastního validátoru s argumentem.

$form->addText('from', 'Od');
$form->addText('to', 'Do');

$form['from']->addRule('Validator::dates', 'Datum Do je dřív než Od', $form['to']);

A samotný validátor.

class Validator {
	public static function dates(TextInput $from, TextInput $to) {
		return $to->getValue() >= $from->getValue(); // názorně
	}
}

Editoval vlki (30. 8. 2009 22:01)

Blizzy
Člen | 149
+
0
-

Nakonec je to tak jednoduché, asi jsem špatně přistupoval k prvkům formuláře (asi na špatném místě), že mi to nešlo.

Děkuji mnohokrát za pomoc.

Honza Marek
Člen | 1664
+
0
-

strtotime($to->getValue()), pokud je datum ve „správném“ formátu.