![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 1 Dołączył: 9.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam formularz rejestracyjny (widok). Są dwa kontrolery: IndexController i EmailController.
W dużym skrócie, co chcę osiągnąć 1) IndexController odpala widok, który wyświetla formularz 2) Po wysłaniu formularza, IndexController zapisuje dane do bazy (za pomocą jakiegośtam modelu) 3) IndexController wywołuje EmailController (robię to za pomocą _forward() ) 4) EmailController pobiera z bazy szablon wiadomości (znowu jakiś model) 5) EmailController wysyła maila (wykorzystałem Zend_Mail) 6) Teraz chcę wyświetlić komunikat, że link z kodem aktywacyjnym został wysłany mailem. Punkty 1-5 mam zrealizowane. Utknąłem na 6). Nie wiem w jaki sposób i w którym miejscu wyświetlić ten komunikat. Nie mogę tego zrobić w EmailController, ponieważ będzie on wykorzystany do wysyłania różnych maili, w różnych "modułach" serwisu - a zatem za każdym razem będzie wyświetlał inny komunikat. Najlepiej gdyby z EmailController dało się "wrócić" do miejsca(kontrolera i akcji) z którego zostal odpalony. Coś w tym stylu:
Próbowałem drugi raz użyć _forward(). ale wtedy działa tylko ten drugi. Siedzę nad tym od ponad 3 godzin. Wymęczyłem dokumentacje ZF, googla i wszelkie znane mi źródła. To mój pierwszy "projekt" z wykorzystaniem ZF i zarazem pierwszy kontakt z MVC. Jestem pewien, że robię jakiś głupi błąd. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A słyszałeś o FlashMessengerze? Ten helper udostępnia funkcjonalność której poszukujesz.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 1 Dołączył: 9.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
A słyszałeś o FlashMessengerze? Ten helper udostępnia funkcjonalność której poszukujesz. Tak, widziałem to w dokumentacji. Jak rozumiem miałoby to wyglądać w ten sposób: IndexController:
EmailController:
Wszystko fajnie, ale co, jeśli po wysłaniu maila chcę wykonać kolejną akcję? na przykład obsługa płatności - po zapłaceniu chcę wysłać maila do klienta (potwierdzenie zakupu) i do administratora. Czyli chciałbym dwa razy wywołać EmailController i znowu leżę (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) Natomiast wymyśliłem inne rozwiązanie - wysyłanie maili zrobić jako Action Helper. "Action Helpers aim to minimize the necessity to extend the abstract Action Controller in order to inject common Action Controller functionality" Więc jakoś to pasuje do definicji (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 18:43 |