Jak zobrazit flash message vytvorenou v komponente
- Muhahe
- Člen | 79
Ahoj,
mam komponentu na vytvareni jednoduchych formularu (pouze jednoradkovy input s tlacitkem pro zmenu nastaveni), ktery po odeslani zpracuje data a je presmerovan na stejnou stranku, kde je formular zobrazen. Rad bych nastavil flashmessage, ktera da uzivateli informaci, ze doslo k nejake zmene. Tuto flash message vytvarim v metode, ktera se provede po zpracovani formulare. A zde jsem narazil na problem, ze tato flash message uz neni predana do hlavni sablony layout.latte a zustava pouze v sablone formulare.
"V tutorialech ":https://doc.nette.org/…n/components#… jsem narazil na informaci, ze komponenta ma vlastni uloziste flash zprav, nezavisle na presenteru, takze bych teoreticky chapal, proc se flash message nezobrazi.
Zajimalo by me, jestli je mozne, predat flash message z komponenty do
presenteru, nebo aby se zobrazila. Nebo musim pro komponenty vytvorit vlastni
zobrazovani flash messages?
(pokud bude potreba, dodam bloky kodu, ale myslim ze na tento dotaz
nemaji vliv)
- Oli
- Člen | 1215
Flash se ti zobrazí v takové komponentě, do které ji předáš. Pokud ji chceš předat presenteru tak to uděláš jednoduše:
$this->presenter->flashMessage('Hello');
Nebo pokud nechceš závislost na presenteru v komponentě, tak jako událost:
$this->onFlash('Hello');
A v presenteru:
$form = $this->form->create(); //instance EditForm (nebo jak to máš pojmenovaný)
$form->onFlash[] = function ($message) {
return $this->flashMessage($message);
};
return $form;
- Muhahe
- Člen | 79
Oli napsal(a):
Flash se ti zobrazí v takové komponentě, do které ji předáš. Pokud ji chceš předat presenteru tak to uděláš jednoduše:
$this->presenter->flashMessage('Hello');
Nebo pokud nechceš závislost na presenteru v komponentě, tak jako událost:
$this->onFlash('Hello');
A v presenteru:
$form = $this->form->create(); //instance EditForm (nebo jak to máš pojmenovaný) $form->onFlash[] = function ($message) { return $this->flashMessage($message); }; return $form;,
Super, diky moc. Tohle jsem presne chtel vedet.
Editoval Muhahe (19. 9. 2016 8:32)
- akadlec
- Člen | 1326
Pokud to chceš řešit komplexně tak třeba "takto ":https://github.com/…ash-messages jak o tom psal třecha Chemix