Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Zmienne w kontrolerze dostępne we wszystkich akcjach
d_hrabia
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 7.01.2011

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


No właśnie mam taki problem - dlaczego zmienne klasy kontrolera nie są dostępne we wszystkich akcjach?
Przykład:

Controller
  1. class JakisController extends Zend_Controller_Action
  2. {
  3. public function init()
  4. {
  5. $this->test=null;
  6. }
  7. public function pierwszaAction()
  8. {
  9. $this->test="wiadomosc";
  10. }
  11. public function drugaAction()
  12. {
  13. $this->vew->test=$this->test;
  14. }
  15. }


I przechodzac z akcji pierwsza do druga, oraz wyświetlając w widoku akcji druga zmienną $test nie wyświetla się nic.
Może mi ktoś to łopatologicznie wytłumaczyć? (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
krowal
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Po pierwsze to masz błąd w kodzie, jest 'vew' powinno być 'view'. A po drugie, chodzi tutaj o to, że wszystko co było w pamięci przy wywołaniu akcji 'pierwsza' zostaje wymazane od razu po wykonaniu się kodu. Język PHP nie zapamiętuje zmiennych, obiektów (i ich składowych) przechodząc pomiędzy wywołaniami strony. Aby mieć coś w zmiennej składowej test musisz wykonać metodę, która ją zmieni czyli teoretycznie w metodzie drugaAction() powinieneś wywołać pierwszaAction() i topiero odwoływać się do zmiennej test. Jakby nie było do tego powinieneś raczej użyć odrębnej metody, która ci tą zmienną zmieni a nie metody, która jest przeznaczona do wykonania całej akcji użytkownika (wszystkie metody typu xxxAction()).
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: 8.10.2025 - 20:25