Redirect po zpracování formuláře

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

Zdravím,
mám formulář z továrničky. V processForm() pak akorát přesměruju na actionDefault($values), která se stará o zpracování formuláře.

protected function createComponentSearchForm()
	{
		$form = new SearchForm($this->database);
		$form["kraje"]->setItems(array('nerozhoduje') + $this->search->getKraje()->fetchPairs());
		$form["orp"]->setItems(array('nerozhoduje') + $this->search->getOrp()->fetchPairs());
		$form["obce"]->setItems(array('nerozhoduje') + $this->search->getObce()->fetchPairs());
		$form->onSuccess[] = callback($this, 'processForm');
		return $form;
	}

Je nějak možné už v processForm ověřit předané hodnoty a na jejich základě provést redirect?
Když udělám něco jako

if (splněná podmínka) {
	$this->redirect("default", array("filter" => $filter));)
}

tak při prvním načtení stránky dostanu chybu, že volám položku na nedefinovaném indexu pole. V současné době tak hodnoty ověřuju až v samotné action a nejsem si jistý, že je to tak správně. Případně jde jako callback rovnou volat action?

Felix
Nette Core | 1247
+
0
-

ty se prece dostanes k hodnotam uz v processForm..

public function processForm(Form $form) {
	$values = $form->getValues();
	//iff () then redirect..
}
zimmi
Člen | 94
+
0
-

Problém je, že ty selecty jsou na sobě závislé a dynamicky je měním podle hodnoty těch dalších (z db), a v processForm se nemůžu dostat k setDefaultValue.

Felix
Nette Core | 1247
+
0
-

Mozna hledas funkci $form->getHttpData() ta vrati surova data.