Přístup k flashMessages uvnitř view

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

Potřebuji se nějak dostat k již nastaveným flashMessages v konkrétním view

class UzivatelPresenter extends BasePresenter {
	public function renderRegistrace()
	{

, abych mohl detekovat, zda se tam objevila nějaká message typu success. Když taková skutečnost nastala, skrývám formulář (např. po úspěšné registraci nechci, aby byla vidět hláška a znova prázdný formulář, ale jen hláška).

Zkoušel jsem to logicky přes foreach ($this->template->flashes as $flash) {
ovšem laděnka na mě zařvala toto:

Notice: Indirect modification of overloaded property NTemplate::$flashes has no effect.

Přitom jsem nechtěl nic ve flashMessages přepisovat, jen jsem chtěl projít to pole a zjistit, jestli platí $flash->type == 'success' a v tom případě nevypsat formulář.

Jinak takto je to samozřejmě funkční, ale nechávat v aplikaci Notice chybu se mi fakt nechce… Určitě existuje nějaký korektnější způsob… :)

Editoval maarlin (31. 1. 2010 19:38)

redhead
Člen | 1313
+
0
-

tohle nejde?

$flashes = $this->template->flashes;
foreach ($flashes as $flash) { .. }
maarlin
Člen | 207
+
0
-

Tak samozřejmě že funguje, ovšem působí mi to Notice chybu… Což není příjemné…

Zkoušel jsem to logicky přes foreach ($this->template->flashes as $flash) {
ovšem laděnka na mě zařvala toto:

Notice: Indirect modification of overloaded property NTemplate::$flashes has no effect.

Přitom jsem nechtěl nic ve flashMessages přepisovat, jen jsem chtěl projít to pole a zjistit, jestli platí $flash->type == 'success' a v tom případě nevypsat formulář.

Jinak takto je to samozřejmě funkční, ale nechávat v aplikaci Notice chybu se mi fakt nechce… Určitě existuje nějaký korektnější způsob… :)

maarlin
Člen | 207
+
0
-

Jsem idiot… přiřazeno do proměnné je to v pořádku… nechápu proč :)

Ondřej Mirtes
Člen | 1536
+
0
-

A není lepší přesměrovat uživatele na nějakou jinou stránku s obsahem, než mu ukázat jen prázdnou stránku s flash zprávičkou? Nemusel bys pak řešit tento problém :)

David Grudl
Nette Core | 8149
+
0
-

Nemáš tam PHP 5.2.0? Má takový bug.