Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Archiwum Pro _ [MVC] przekazywanie parametrów akcji

Napisany przez: drbane 18.03.2007, 10:19:38

Witam,
Mam taki mały problem, jak zrobić przekazywanie parametrów akcji w kontrolerze?
Mam cos takiego (przyklad):

  1. <?php
  2. $this->NextAction('saveData','id'=>'1');
  3. ?>


Powiedzmy że mam listę akcji do wykonania i co teraz? Jak przekazać parametry, żeby akcja "wiedziała" o nich i je wykonała?
Nie wiem, czy pytanie jest dobrze sformułowane, jeżeli nie - poprawię.

Dla Was może to nie problem, ale dla mnie...tak:)

Napisany przez: splatch 18.03.2007, 11:57:48

W Agavi każda akcja i widok dostaje kontener zawierający dane z różnych miejsc (GET/POST/FILES etc), do których dobierasz się metodą setParameter.

W chwili gdy robisz forward możesz dorzucić własny parametr przez setParameter.

  1. <?php
  2. class Cart_AddAction extends AgaviAction {
  3.  
  4. public function execute(AgaviParameterHolder $parameters) {
  5. $cart = $this->getContext()->getUser()->getCart();
  6. try {
  7. // helper wykorzystuje parametry i kontekst do wyszukiwania obiektów
  8. $helper = new PropelHelper($this->getContext(), $parameters);
  9. $product = $helper->read('Products');
  10. $cart->add($product);
  11. } catch (PropelException $e) {
  12. // w razie problemów dorzucamy wyjątek, który będzie dostępny dla widoku
  13. $parameters->setParameter('exception', $e);
  14. return 'Error';
  15. }
  16.  
  17. $parameters->setParameter('message', 'Produkt '. $product->getProductName() .' został dodany do koszyka');
  18. return http://www.php.net/array('Cart', 'IndexSuccess', $parameters);
  19. }
  20.  
  21.  
  22. public function getDefaultViewName() {
  23. return 'Foo';
  24. }
  25.  
  26. }
  27.  
  28. ?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)