konto usunięte

Temat: Przekazanie wiadomości podczas korzystania z innego widoku.

Witam.

Przekazują sobie do layoutu wiadomości flashMessages, jednak kiedy korzystam w akcji z innego widoku (w loginAction ustawiam widok index), to wiadomość się nie przekazuje. Mógłby mi ktoś podpowiedzieć dlaczego się tak dzieje?

Gdy w indexie dodam ten komunikat, to się wyświetla. Ale dlaczego tak się dzieje i jak temu zaradzić?


<?php

class AuthController extends Zend_Controller_Action
{
protected $_flashMessenger = null;

public function init()
{
/* Initialize action controller here */
$this->_helper->layout->setLayout('login');
$this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');
}

public function indexAction()
{
// action body
$this->view->form = new Application_Form_Login();
$this->view->messages = $this->_flashMessenger->getMessages();
}

public function loginAction()
{
// action body
/* to nizej docelowo ma się wyswietlic w laoucie */
$this->_flashMessenger->addMessage(array('err', 'Próba logowania nie powiodła się!'));

$this->_helper->viewRenderer('index');
$form = new Application_Form_Login();


if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())){

//...

if($result->isValid()){
//...
} else {
$this->_flashMessenger->addMessage(array('err', 'Próba logowania nie powiodła się!'));
}
}
$this->view->form = $form;
}
}

konto usunięte

Temat: Przekazanie wiadomości podczas korzystania z innego widoku.

_flashMessage - występuje po request'cie.
Resztę się domyślisz.Jakub Nowak edytował(a) ten post dnia 23.04.13 o godzinie 09:58

konto usunięte

Temat: Przekazanie wiadomości podczas korzystania z innego widoku.

No dobra, ale to za każdym razem mam robić redirecta, który de facto jest trochę zbędny, bo chwilę wcześniej już jeden miał miejsce.
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Przekazanie wiadomości podczas korzystania z innego widoku.

Daniel K.:
No dobra, ale to za każdym razem mam robić redirecta, który de facto jest trochę zbędny, bo chwilę wcześniej już jeden miał miejsce.
Powinno to wyglądać w ten sposób:
1. Wykonujesz fragment kodu, który dostarcza Ci taką czy inną logikę
2. Ustawiasz / dodajesz komunikat za pomocą helpera FlashMessenger
3. Dodajesz przekierowanie we właściwe miejsce, np. do profilu zalogowanego użytkownika, na stronę główną, na listę zamówień etc.

Bez przekierowania, 3-go kroku, komunikat dodany w kroku 2-gim wyświetli się, gdy odświeżysz stronę lub klikniesz na niej link, czyli przy kolejnym request'cie.

Wszystko jasne?

konto usunięte

Temat: Przekazanie wiadomości podczas korzystania z innego widoku.

Tak, już sobie z tym wcześniej poradziłem. To w sumie było głupie pytanie, bo przeszukałem od groma informacji, a dopiero potem zauważyłem, że komunikaty nie pokazują się tylko w kilku akcjach... oczywiście brakowało w nich przekazania wiadomości do widoków.

Dzięki za odpowiedzi.



Wyślij zaproszenie do