Remigiusz
Siedlec
Informatyk BPH BH
S.A
- 1
- 2
Łukasz
C.
Senior Technical
Architect
Temat: przekazywanie zmiennych między kontrolerami, akcjami
hmm przy jednym requescie? action stack moze :PS J. Programista
Temat: przekazywanie zmiennych między kontrolerami, akcjami
A może:$this->_request->setParam('nazwa_parametru', 'wartosc');
Wtedy parametr ustawiony w jednym miejscu możemy pobrac w innym.
Remigiusz
Siedlec
Informatyk BPH BH
S.A
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Sławomir Janczewski:
A może:
$this->_request->setParam('nazwa_parametru', 'wartosc');
Wtedy parametr ustawiony w jednym miejscu możemy pobrac w innym.
Nie zadziałało :(
Moze jakis przyklad...
Zalozenie jest takie: w 1 kontrolerze sa 2 akcje i nalezy przeslac wartosc zmiennej z 1 akcji do 2 akcji czyli użyć zmiennej z pierwszej akcji ...
Łukasz
C.
Senior Technical
Architect
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Remigiusz Siedlec:
Sławomir Janczewski:
A może:
$this->_request->setParam('nazwa_parametru', 'wartosc');
Wtedy parametr ustawiony w jednym miejscu możemy pobrac w innym.
Nie zadziałało :(
Moze jakis przyklad...
Zalozenie jest takie: w 1 kontrolerze sa 2 akcje i nalezy przeslac wartosc zmiennej z 1 akcji do 2 akcji czyli użyć zmiennej z pierwszej akcji ...
powininennes to zrefaktorowac imho, przenies logike akcji do osobnej metody tak abys mial bezproblemowy dostep do niej i przekazuj zmienne normalnie jako parametr
Remigiusz
Siedlec
Informatyk BPH BH
S.A
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Łukasz Cepowski:
Remigiusz Siedlec:
Sławomir Janczewski:
A może:
$this->_request->setParam('nazwa_parametru', 'wartosc');
Wtedy parametr ustawiony w jednym miejscu możemy pobrac w innym.
Nie zadziałało :(
Moze jakis przyklad...
Zalozenie jest takie: w 1 kontrolerze sa 2 akcje i nalezy przeslac wartosc zmiennej z 1 akcji do 2 akcji czyli użyć zmiennej z pierwszej akcji ...
powininennes to zrefaktorowac imho, przenies logike akcji do osobnej metody tak abys mial bezproblemowy dostep do niej i przekazuj zmienne normalnie jako parametr
Dobre, ale w tym przypadku nie mogę sie tym posłużyć
Piotr Maksymilian
Socha
php architect, zce
php, zce zf, mysql,
etc...
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Najpierw powiedz jak to jest, że w jednym wywołaniu wogóle są dwie akcje: ActionStack, _forward(), redirect? w zależności od tego jak to wygląda można by użyć: Zend_Session, Zend_Registry lub jakiś inny obiekt singleton, statyczną zmienną jakiejś klasy, jak wcześniej kolega powiedział - zmienną na obiekcie request, lub ewentualnie gdyby się uprzeć, to przecież zwykle jest tylko jeden obiekt Zend_View, więc i do niego możnaby przecież coś wrzucić :), tak samo jak i do DBPiotr Maksymilian Socha edytował(a) ten post dnia 05.02.10 o godzinie 17:29
Remigiusz
Siedlec
Informatyk BPH BH
S.A
Temat: przekazywanie zmiennych między kontrolerami, akcjami
class aaa extends Zend_Controller_Action{
public function indexAction()
...
$uploadedData = $form->getValues();
$fullFilePath = $form->file->getFileName();
...
return $this->_helper->redirector('wynik');
function wynikAction()
...
echo $uploadedData;
...
oczywiscie to nie dziala :( , robie w ten sposob bo odswiezenie formularza nie powoduje ponowego wyslania danych
Bartosz Ratajczyk MS SQL Developer
Temat: przekazywanie zmiennych między kontrolerami, akcjami
to może zwykłeindexAction():
$this->uploadedData = $form->getValues()
wynikAction()
echo $this->uploadedData()
?
Albo na chama [jeśli nie ma init()]:
indexAction():
$session = new Zend_Session_Namespace('sesja');
$session->uploadedData = $form->getValues();
wynikAction()
$session = new Zend_Session_Namespace('sesja');
echo $session->uploadedData;
[Nie mam jak teraz sprawdzić czy to zadziała]
Remigiusz
Siedlec
Informatyk BPH BH
S.A
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Bartosz Ratajczyk:
to może zwykłe
indexAction():
$this->uploadedData = $form->getValues()
wynikAction()
echo $this->uploadedData()
?
Albo na chama [jeśli nie ma init()]:
indexAction():
$session = new Zend_Session_Namespace('sesja');
$session->uploadedData = $form->getValues();
wynikAction()
$session = new Zend_Session_Namespace('sesja');
echo $session->uploadedData;
[Nie mam jak teraz sprawdzić czy to zadziała]
To drugie jakby lepiej.. uploadeddata jest tablica.. i echo .. zwraca "array"
Remigiusz
Siedlec
Informatyk BPH BH
S.A
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Bartosz Ratajczyk:
to może zwykłe
indexAction():
$this->uploadedData = $form->getValues()
wynikAction()
echo $this->uploadedData()
?
Albo na chama [jeśli nie ma init()]:
indexAction():
$session = new Zend_Session_Namespace('sesja');
$session->uploadedData = $form->getValues();
wynikAction()
$session = new Zend_Session_Namespace('sesja');
echo $session->uploadedData;
[Nie mam jak teraz sprawdzić czy to zadziała]
Ok z sesja działa dzięki za info
S J. Programista
Temat: przekazywanie zmiennych między kontrolerami, akcjami
A moze zrób to tak:public function indexAction()
...
$uploadedData = $form->getValues();
$fullFilePath = $form->file->getFileName();
...
$this->_forward('wynik', NULL, NULL, array('uploadedData' => $uploadedData));
function wynikAction()
...
print_r($this->_getParam('uploadedData'));
-------
Nie polecam używania sesji w tym wypadku, metoda_forward robi podobnie jak _redirect jednak nie musimy przeładowywać strony tylko odrazu widzimy inną akcje. Jako 4 parametr przekazujemy dane ktore chcemy przeniesc do akcji która wywołujemy (tutaj: 'wynik').
konto usunięte
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Przy $this->_foward zawsze pozostaje Zend_RegistryMaciej Filipiak właściciel, VizMedia
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Tak trochę z innej beczki:Przydał by mi się w ZF taki "globalny" controller.
Czyli możliwość przekazania wartości do widoków ($this->view->...)
ale raz w jednym miejscu do widoków obsługiwanych przez wszystkie controllery
Macie jakiś pomysł ?
konto usunięte
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Maciej Filipiak:
Tak trochę z innej beczki:
Przydał by mi się w ZF taki "globalny" controller.
Czyli możliwość przekazania wartości do widoków ($this->view->...)
ale raz w jednym miejscu do widoków obsługiwanych przez wszystkie controllery
Macie jakiś pomysł ?
Witam,
ustawił bym tą zmienną w bootstrap'ie, wtedy będzie dostępna wszędzie.
W czasach gdy bootstrap nie był formalny, spotykałem się z przypadkami ustawiania tego typu zmiennych w pluginach.
Równie dobrze można zrobić ViewHelper.
Kwestia gustu.
Pozdrawiam
konto usunięte
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Maciej Filipiak:
Tak trochę z innej beczki:
Przydał by mi się w ZF taki "globalny" controller.
Czyli możliwość przekazania wartości do widoków ($this->view->...)
ale raz w jednym miejscu do widoków obsługiwanych przez wszystkie controllery
Macie jakiś pomysł ?
Zarejestrowanie plugina/helpera dla front controller?
Łukasz
C.
Senior Technical
Architect
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Maciej Filipiak:
Tak trochę z innej beczki:
Przydał by mi się w ZF taki "globalny" controller.
Czyli możliwość przekazania wartości do widoków ($this->view->...)
ale raz w jednym miejscu do widoków obsługiwanych przez wszystkie controllery
Macie jakiś pomysł ?
geez proste jak j*banie, zrob se kontroler bazowy dziedziczacy po Zend_Controller_Action, i niech z niego dziedziczy reszta kontrolerow aplikacji, wtedy masz do dyspozycji metody init, preDispatch i postDispatch, ustawiajac cos w bazowym kontrolerze bedzie dostepne we wszystkich potomnych a przeslaniajac metode bedziesz mogl zmieniac domyslne zachowanie
Maciej Filipiak właściciel, VizMedia
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Patrycjusz Omiotek:
Zarejestrowanie plugina/helpera dla front controller?
Czytam sobie...
Czy z zarejestrowanej klasy rozszerzającej Zend_Controller_Plugin_Abstract
będzie dostęp do $this->view->zmienna ?
czy trzeba coś jeszcze zakombinować ?
Bartosz Ratajczyk MS SQL Developer
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Maciej Filipiak:
Czyli możliwość przekazania wartości do widoków ($this->view->...)
ale raz w jednym miejscu do widoków obsługiwanych przez wszystkie controllery
Macie jakiś pomysł ?
Może Zend_Layout? Ale chyba najlepiej jak napisał Łukasz - własny kontroler bazowy rozszerzający Zend_Controller_Action.
konto usunięte
Temat: przekazywanie zmiennych między kontrolerami, akcjami
Maciej Filipiak:
Patrycjusz Omiotek:
Zarejestrowanie plugina/helpera dla front controller?
Czytam sobie...
Czy z zarejestrowanej klasy rozszerzającej Zend_Controller_Plugin_Abstract
będzie dostęp do $this->view->zmienna ?
czy trzeba coś jeszcze zakombinować ?
O ile Cię dobrze rozumiem, to można, ale uświadomiłem sobie, że nie za bardzo sensu tak kombinować - Łukasz podał lepsze rozwiązanie ;-)
- 1
- 2
Podobne tematy
Następna dyskusja: