Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] FlashMessenger
uirapuru
post
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 9
Dołączył: 30.04.2005

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 13:31