Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] opcje do sfWidgetFormSelect w szablonie
Forum PHP.pl > Forum > PHP > Frameworki
Foxx
Witajcie, czy mogę dodać opcje do widgeta sfWidgetFormSelect dopiero w szablonie, a nie podczas tworzenia jego instancji w klasie formularza? Jeżeli tak, to jak to zrobić?

Potrzebuję tego bo opcje są zależne od obliczeń których dokonuję dopiero w module.
Poradziłem sobie na razie tak, że w klasie formularza podaję jako parametr "choices" statyczne pole z modułu, ale może da się to uprościć?
Pozdrawiam i dzięki.

A nawet sobie nie poradziłem, przecież i tak nie będę w ten sposób mógł dynamicznie przypisywać wartości. A więc bardzo tej porady potrzebuję smile.gif

-----
EDIT:

Poradziłem sobie ale w dziadowski sposób chyba: zrobiłem kilka tablic z opcjami w klasie formularza i kilka widgetów, każdy dostaje inną tablicę a potem w szablonie w zależności od obliczeń wyświetlam jeden z tych widgetów.
To jest kłopotliwe bo potem aż do końca muszę panować nad tym który widget został zastosowany, na pewno jest wygodniejszy sposób...
michalg
Witam,

Nie wiem, czy do końca rozumiem Twój problem, ale mówiąc moduł chodzi Ci o akcję? Skoro obliczenia są wykonywane w akcji, to dlaczego ich nie umieścisz przed tworzeniem obiektu formularza i nie prześlesz do konstruktora?

  1.  
  2. class JakisForm extends sfForm
  3. {
  4. private $opcje;
  5.  
  6. public function __construct($opcje)
  7. {
  8. $this->opcje = $opcje;
  9.  
  10. parent::__constuct();
  11. }
  12.  
  13. public function configure()
  14. {
  15. $this->widgetSchema['select'] = new sfWidgetFormSelect(array("choices"=>$this->opcje));
  16. }
  17. }
  18.  
  19.  
  20. // moduł
  21. public function jakasAkcja($request)
  22. {
  23. // jakieś obliczenia
  24. [...]
  25.  
  26. // tworzymy forma
  27. $form = new JakisForm($obliczoneOpcje);
  28. }
  29.  
  30.  
Foxx
dzięki snitch.gif
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.