Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] FlashMessenger
Forum PHP.pl > Forum > PHP > Frameworki
uirapuru
Hej!

Mam następujący problem. Przy błędnym zalogowaniu dodaje sobie jakąś tam wiadomość w akcji kontrolera:

  1. $this->_flashMessenger->addMessage($sError);


Pokazuję ją sobie w templatce w ten sposób:

  1. $aMessages = $this->layout()->messages;
  2. if (count($aMessages) > 0)
  3. {
  4. echo '<div><ul>";
  5. foreach ($this->layout()->messages as $sMessage)
  6. {
  7. echo "<li>".$this->translate($sMessage)."</li>";
  8. }
  9. echo "</ul></div>";
  10. }


Tak wygląda fragment bootstrapa, który pobiera wiadomości i wstawia je do layoutu

  1. public function _initLayout()
  2. {
  3. // ... jakiś tam kod
  4. $oLayout = Zend_Layout::getMvcInstance();
  5. $oLayout->messages = Zend_Controller_Action_HelperBroker::getHelper("flashMessenger")->getMessages();
  6.  
  7. }


(z resztą podmiana w templatce $this->layout()->messages na Zend_Controller_Action_HelperBroker::getHelper("flashMessenger")->getMessages() daje ten sam, dalej opisany efekt).

Tak więc w ten sposob wygląda owa konstrukcja. Efekt jest taki:

1. Loguję sie po raz pierwszy z błednymi danymi
2. Nie wyświetla mi żadnego błędu
3. Loguję się po raz drugi
4. Pokazują się błędy z pierwszego logowania
5. Loguję się po raz trzeci
6. Pokazują się błędy z drugiego logowania

i tak w kółko. var_dump($_SESSION) pokazuje, ze wartości są zmieniane tak jak trzeba - momentalnie, flashMessenger jednak odczytuje je po następnym cyklu dopiero. Co robię źle?
Eagle
W bootstrapie przekazujesz dane do widoku smile.gif

To co robisz można przedstawić tak:

1) START -> przekazanie "pustych" wiadomości do widoku -> logowanie -> ustawienie komunikatów -> wyświetlanie "pustych" komunikatów. -> KONIEC
2) START -> przekazanie komunikatów z 1) -> coś, coś, coś, -> ustawienie nowych komunikatów -> wyświetlenie komunikatów z 1)

Z bootstrapa przenieś do kontrolera
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.