Volání `flashMessage()` v `createComponent…` funkci
- matronator
- Člen | 38
Když zavolám v některé z createComponentX
metod funkci
$this->flashMessage()
, tak se sice zpráva uloží do session,
ale již se nevykreslí. Zároveň pak z těch session nemizejí, ale
zůstávají uložené. Je to správné chování, nebo chyba v Nette? Jak to
vyřešit aby se zpráva ukazovala?
- Gappa
- Nette Blogger | 209
matronator napsal(a):
Když zavolám v některé z
createComponentX
metod funkci$this->flashMessage()
, tak se sice zpráva uloží do session, ale již se nevykreslí. Zároveň pak z těch session nemizejí, ale zůstávají uložené. Je to správné chování, nebo chyba v Nette? Jak to vyřešit aby se zpráva ukazovala?
Každá komponenta má vlastní flash message stack, je potřeba zavolat
$this->getPresenter()->flashMessage()
.
- matronator
- Člen | 38
Gappa napsal(a):
matronator napsal(a):
Když zavolám v některé z
createComponentX
metod funkci$this->flashMessage()
, tak se sice zpráva uloží do session, ale již se nevykreslí. Zároveň pak z těch session nemizejí, ale zůstávají uložené. Je to správné chování, nebo chyba v Nette? Jak to vyřešit aby se zpráva ukazovala?Každá komponenta má vlastní flash message stack, je potřeba zavolat
$this->getPresenter()->flashMessage()
.
Ano, tak to volám, ale stejně se nezobrazí, i když do session se
uloží. Dokonce je vidět i když dumpnu $this->template
, ale
prostě pak v té šabloně jako takové už nic.
- matronator
- Člen | 38
Šaman napsal(a):
Anebo si ty message vypsat na úrovni komponenty.
Zkoušel jsem, také to nefunguje když to zavolám v té
createComponentX
funkci.
- Kamil Valenta
- Člen | 822
Nezpracováváš tu komponentu ajaxově? Pak bys musel vykreslení flash msg obalit snippetem a ten invalidovat.
- matronator
- Člen | 38
nightfish napsal(a):
Jakým způsobem/kódem flash message v šabloně vykresluješ?
To si myslím je nepodstatný, jelikož když to přesunu do jakékoliv jiné
lifecycle funkce, např. renderDefault()
tak se již vykreslí
v pohodě. Ale vykresluji je takto:
<main>
{block #flashmessages}
<div n:snippet="flashes">
{foreach $flashes as $flash}
{var $flashTypeClass = 'alert-' . $flash->type}
<div n:class="flash, $flash->type, alert, $flashTypeClass" role="alert">
{$flash->message}
<button role="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{/foreach}
</div>
{/block}
{include #content}
</main>