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