Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Przesyłanie zmiennej między akcjami.
kodereq
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 27.02.2009

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


Na początku zaznaczam, że będę stosował konwencję controller/model w celu uzyskania spójności wątku.

Problem wygląda następująco.

Jestem w index/index - user submituje formularz, który przenosi go do index/process jednocześnie wysyłając dane metodą POST. Teraz w index/process odbywa się validacja (Zend_Form + Zend_Validate). W wypadku udanej walidacji nie ma problemu, wyświetlam komunikat (za pomocą zmiennej widoku 'message'): "Dane zostały zapisane". Natomiast w wypadku niepowodzenia chciałbym przekierować na index/index - jednocześnie przekazując parametry post oraz zawartość zmiennej widoku 'message'. Co prawda, mógłbym to zrobić 'na pałę' - podpinając ten sam formularz pod index/process i po prostu wyświetlając go w widoku dla tej akcji, co jednak wydaje się lekko 'nie po Bożemu'. I tu właśnie rodzi się moje pytanie:

Jak płynnie przesyłać zmienne między akcjami jednego kontrolera ?


Moim celem jest ładna obługa formularzy, czyli formularz z index/index submituje na index/process, natomiast w wypadku nie przejścia walidacji wracamy do index/index i wyświetlamy komunikat + formularz do poprawy. Index/process odpowiada tylko za przetworzenie danych oraz wyświetlenie komunikatu powodzenia.

Może da się to zrobić bez przekierowań i ręcznego przesyłu zmiennych, może wystarczy pomajstrować przy Zend_Form + Zend_Validate?

Bardzo proszę o sugestie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kodereq
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 27.02.2009

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


Zrobiłem coś takiego:

  1. protected $_flashMessenger = NULL;
  2. function indexAction()
  3. {
  4. (...)
  5.  
  6. if($messages = $this->_flashMessenger->getMessages()) {
  7. $this->view->message = $messages[0]['messageContent'];
  8. }
  9. }


  1. function processAction()
  2. {
  3. (...)
  4. $this->_helper->viewRenderer->setNoRender();
  5. $this->_flashMessenger->addMessage(array('messageContent' => "Message content."));
  6. $this->_redirect('index/index');
  7. }
  8.  


Trochę pisania, ale jak ładnie? Nieprawdaż?

P.S.
Zaraz poklikam "POMÓGŁ".
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: 6.10.2025 - 02:43