addError po isSuccess nefunguje

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

Zdravim

mam divny problem s formularmi (Nette 2.1).

Mam formular, klasicky cez tovarnicku podedeny z UI\Form.

Dalej mam v actionDefault toto (po velkom zjednoduseni):

<?php
public actionDefault() {
	$form = $this["loginForm"];
	if ($form->isSuccess()) {
		// Tu je podmienka ktora moze vyhodit error.
		$form->addError("error2");
	}
}
?>

Lenze po odoslati formulara sa vo formulari error nevykresli a ako by sa stratil.

Ak to spravim cez event

<?php
public actionDefault() {
	$form = $this["loginForm"];
	$form->onSuccess[] = function($form)  {
		// Tu je podmienka ktora moze vyhodit error.
		$form->addError("error2");
	};
}
?>

tak sa error normalne zobrazi.

lenze, minimalny priklad kde nepouzivam presentre iba nette forms, tak to funguje:

<?php

$form = new Form;

$form->addSubmit("submit");

if ($form->isSuccess()) {
	$form->addError("error2");
}

echo $form;

?>

Dokonca to funguje i ked je to v render:

<?php
public function renderDefault()
{
	$form = $this["form"];
	if ($form->isSuccess()) {
		$form->addError("error");
	}
}
?>

Nestretol sa niekto s podobnym spravanim? Pripadne nevidi tam niekto chybu?

EDIT: v nette 2.0.* to funguje, tak ako by som ocakaval.

Editoval matopeto (28. 4. 2014 15:00)

David Grudl
Nette Core | 8228
+
0
-

Tohle by mělo být opravené v 2.2.3.