Remigiusz Siedlec

Remigiusz Siedlec Informatyk BPH BH
S.A

Temat: przekazywanie zmiennych między kontrolerami, akcjami

Jest jakis sposób na przekazanie wartości zmiennej do innego kontrolera ewentualnie akcji?
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: przekazywanie zmiennych między kontrolerami, akcjami

hmm przy jednym requescie? action stack moze :P
S J.

S 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

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.

Ł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

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

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

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

Bartosz Ratajczyk MS SQL Developer

Temat: przekazywanie zmiennych między kontrolerami, akcjami

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]
Remigiusz Siedlec

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

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.

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_Registry
Maciej Filipiak

Maciej 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.

Ł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

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

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 ;-)



Wyślij zaproszenie do