edit formular – redirect pri spatnem vstupu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- macosx69
- Člen | 5
Ahoj,
resim problem s redirectem. Potrebuju presmerovat pri vytvareni edit formulare,
pokud zjistim, ze hledanemu id nic neodpovida
class CalendarForm extends \Nette\Application\UI\Form{
...
$value = $this->repository->loadItem($this->id);
if (!isset($value)) {
$this->presenter->redirect('Calendar:list');
}
...
}
tehle zpusob mi bud vraci „Component '' is not attached to ‚Nette\Application\UI\Presenter‘.“
a pokud si poslu pointer na presenter pri volani CalendarForm (new CalendarForm($this)), tak je vysledkem „Nette\Application\AbortException“
diky za radu
- David Matějka
- Moderator | 6445
- neni dobry dedit od Formu, je lepsi pouzit tovarnu nebo dedit od Controlu, ktery bude mit createComponent* metodu na vytvoreni konkretniho formu.
- to, jestli polozka existuje, je lepsi zjistit v presenteru v action* metode
- takovyhle operace (vyzadujici jiz pripojenej presenter) ve formu (kde by se to nemelo dit dle bodu 1), ale i ve zdedenem controlu, je dobry napsat asi takhle:
public function attached($presenter)
{
parent::attached($presenter);
if($presenter instanceof \Nette\Application\UI\Presenter) {
//kod zde
}
}