Flash messages & redirect
- frenkiesoul
- Člen | 11
Vím, že se tu tohle téma v různých variacích už několikrát probíralo, ale i tak bych se rád zeptal:
V BasePresenteru mám form komponentu a k ní obslužnou metodu. V obslužné metodě mám těsně před redirectem flashMessage, ale po přesměrování se zpráva nezobrazí a já nemůžu přijít na to proč.
Obslužná metoda k formu:
public function sendMail(Form $form){
$values = $form->getValues();
....
$this->flashMessage('Email byl odeslán.');
$this->redirectUrl($this->httpRequest->getReferer()->path);
}
a v layout.latte klasicky:
{foreach $flashes as $flash}
{$flash->message}
{/foreach}
V URL se ani neojeví standartní „_fid“, prostě nic. Prosím
o jakékoli nakopnutí, kde by mohla být chyba.
Děkuji.
- frenkiesoul
- Člen | 11
Já věděl, že jsem přehlédl nějakou prkotinu. Jestli se můžu ještě zeptat – jaká je best practice pro přepsání adresy z $this->httpRequest->getReferer()->path do Nette tvaru? Tak aby se dala použít právě v redirect. Mám to vytáhnout pomocí getRequest(), nebo existuje hezčí řešení?
- Michal Vyšinský
- Člen | 608
Jak už psali výše: $this->redirect(„this“) přesměruje na stránku ze které jsi na signál přišel.
- johnymachine
- Člen | 12
Zdravim, hledam podobne reseni. Vyse zmineny priklad s redirect(„this“)
dela smycku presmerovani.
Potrebuji v podstate elegantne udelat neco jako toto https://forum.nette.org/…lash-message.
Mam dejme tomu TodoPresenter->renderTodos. odtud odesilam formular na CommentPresenter->actionAddComment a chci flash msg a zpet na Todos.
Predem dekuji za pomoc =)
- johnymachine
- Člen | 12
akadlec napsal(a):
@johnymachine: v rendereru posíláš form? To je trochu pozdě ne? Zřejmě tam máš nějakou botu co ti dělá cyklické přesměrování.
Ne primo z metody render ale ze stranky kterou vykresli. Mozna se vyjadruji nepresne, za coz se omlouvam. =)