Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]forumlarz w Symfony
Forum PHP.pl > Forum > PHP > Frameworki
mercii
Witam
Mam problem z zrealizowaniem takiego założenia:
Chciałbym aby w formularzu domyślnie ładowało mi pewnie zmienne.
Czyli mam formularz:
idWymiana_czesc:
...
....
Samochod_id_vin:
...

I w polach Id aby pobierało mi dane z url?
Tak obecnie wygląda plik:
  1. class BaseWymianaCzesciForm extends BaseFormPropel
  2. {
  3. public function setup()
  4. {
  5. $this->setWidgets(array(
  6. 'idWymiana_czesci' => new sfWidgetFormInputHidden(),
  7. 'Czesci_idCzesci' => new sfWidgetFormPropelChoice(array('model' => 'Czesci', 'add_empty' => false)),
  8. 'Samochod_id_vin' => new sfWidgetFormPropelChoice(array('model' => 'Samochod', 'add_empty' => false)),
  9. 'Zlecenie_id_zlecenia' => new sfWidgetFormPropelChoice(array('model' => 'Zlecenie', 'add_empty' => false)),
  10. 'przebieg' => new sfWidgetFormInput(),
  11. 'cena' => new sfWidgetFormInput(),
  12. ));
  13.  
  14. $this->setValidators(array(
  15. 'idWymiana_czesci' => new sfValidatorPropelChoice(array('model' => 'WymianaCzesci', 'column' => 'idWymiana_czesci', 'required' => false)),
  16. 'Czesci_idCzesci' => new sfValidatorPropelChoice(array('model' => 'Czesci', 'column' => 'idCzesci')),
  17. 'Samochod_id_vin' => new sfValidatorPropelChoice(array('model' => 'Samochod', 'column' => 'id')),
  18. 'Zlecenie_id_zlecenia' => new sfValidatorPropelChoice(array('model' => 'Zlecenie', 'column' => 'id_zlecenia')),
  19. 'przebieg' => new sfValidatorNumber(array('required' => false)),
  20. 'cena' => new sfValidatorNumber(array('required' => false)),
  21. ));
  22.  
  23. $this->widgetSchema->setNameFormat('wymiana_czesci[%s]');
  24.  
  25. $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
  26.  
  27. parent::setup();
  28. }
  29.  
  30. public function getModelName()
  31. {
  32. return 'WymianaCzesci';
  33. }
  34.  
  35.  
  36. }
  37.  


a zmienna która ma być przekazywana to:
  1. $request->getParameter('id_zlecenia')



Crozin
Tworząc nowy formularz pierwszy czy drugi parametr konstruktora to tablica wartości domyślnych - tam możesz przekazać. Możesz również bezpośrednio w metodzie configure formularza.
Gribo
możesz także użyć setDefault() dla poszczególnych pól formularza. odsyłam do dokumentacji napewno znajdziesz.
mercii
Dzięki.
Działa mi ta opcja z configure ale nie wiem jak tam przekazać wartość z urla.
URl po wywołaniu formularza wygląda tak:
http://127.0.0.2/frontend_dev.php/wymiana_.../id_zlecenia/11
a configure tak:
  1. public function configure()
  2. {
  3.  
  4. $this->setDefault('Zlecenie_id_zlecenia', $request->getParameter('id_zlecenia'));
  5.  
  6. }

a bląd wygląda tak:
  1. Notice: Undefined variable: request in D:\xampp\htdocs\jobeet\lib\form\base\BaseWymianaCzesciForm.class.php on line 15
  2.  
  3. Fatal error: Call to a member function getParameter() on a non-object in D:\xampp\htdocs\jobeet\lib\form\base\BaseWymianaCzesciForm.class.php on line 15
Cysiaczek
Myślę, że trochę przeginasz z takim problemem jak pozyskanie parametru, ale niech Ci będzie :/
  1. sfContext::getInstance()->getRequest()->getParameter();
destroyerr
Oczywiście nie jest to dobre rozwiązanie z uzyskiwaniem kontekstu przez metodę getInstance. Zdecydowanie bardziej poprawnym jest ustawienie wartości domyślnej. Metoda setDefault jest publiczna więc możesz z powodzeniem wykorzystać ją w kontrolerze.
mercii
Dziękuje za podpowiedzi. Bardzo mi pomogły.
Jednak pojawił się kolejny problem. Nie chcę zaczynąc nowego tematu więc napisze tutaj.
Znalazłem fajny plugin do wykresów i wszystko jest fajnie jak przekazuje jedna tablicę:
  1. tutaj hest petla foreach
  2. <?php $data[$i]=$zlecenie->getCena();?>
  3. endforeach
  4. ...
  5. stOfc::createChart(750, 325, 'klient/BarChartData?data='.$data, false); ?>

Jednak potrzebuje do :createChart przekazać dwie tablice. Kombinowałem na wszystkie sposoby ale jednak mam spore problemy z przekazywaniem zmiennych....
Rysowanie wykresu umiesciłem w action.class
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.