Flash messages & redirect

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

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.

MW
Člen | 626
+
0
-

není v tomto případě lepší použít redirect() ?

duskohu
Člen | 778
+
0
-

Skus to najprv bez redirect, popripade daj $this->redirect(‚this‘), ako sa to bude spravat.

frenkiesoul
Člen | 11
+
0
-

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
+
0
-

Jak už psali výše: $this->redirect(„this“) přesměruje na stránku ze které jsi na signál přišel.

frenkiesoul
Člen | 11
+
0
-

Děkuji všem! Asi už u toho sedím moc dlouho :)

johnymachine
Člen | 12
+
0
-

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

akadlec
Člen | 1326
+
0
-

@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í.

johnymachine
Člen | 12
+
0
-

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