konto usunięte

Temat: [1.4] jeden widget - kilka pól

Mam dwa pytania odnośnie widgetów:

1. Chciałbym opakować kilka checboxów w jeden widget. I jeśli w klasie formularza mam przykładowo:
$this->setWidget('my_widget', new myFormWidgetCustomChecbox());

To jak przekazać wartość z kilku pól w bazie (używam propel 1.5) do jednego widgetu, który już wewnątrz rozbija sobie te wartości. Funkcją bind()? Jak?

2. Jeśli mam widget składający się z dwóch inputów, jeden na datę, drugi na godzinę, to gdzie wrzucić funkcję która złączy te dwa pola, zmieni na timestamp i zapisze do odpowiedniego pola do bazy? Funkcja processValues($values)?Paweł Ryznar edytował(a) ten post dnia 05.08.10 o godzinie 15:26

konto usunięte

Temat: [1.4] jeden widget - kilka pól

1. Jeśli masz na myśli edycję, to tworząc w akcji formularz, jako drugi parametr dajesz tablice z parametrami:
$form = new JakisForm(null, array('foo' => 'bar');

Potem w formularzu:
$this->widgetSchema['my_widget'] = new myFormWidgetCustomChecbox(array('foo' => $this->getOption('foo'));

I oczywiście w konstruktorze widgetu musisz wziąść pod uwagę te parametry i je ustawić jako wartość. Stworzyć opcje widgetu, analogicznie jak wszystkie widgety.

2. Jest do tego widget sfWidgetFormDateTime

konto usunięte

Temat: [1.4] jeden widget - kilka pól

1. Imho to nie jest takie proste. W sumie to podałem prosty przykład z widgetem opakowującym checboxy, ale równie dobrze ten widget może mieć jeszcze input text. Więc przekazanie tablicy asocjacyjnej jako $value nie wchodzi w grę bo jeśli formularz nie przejdzie walidacji to dostanę notice że danego klucza nie ma w $value.
Za to trafiłem na coś takiego - rozszerzyć sfWidgetFormSchema. Czy jest to na 100% dobry pomysł to jeszcze nie wiem ;) Może ktoś podpowie. Dwa, nie wiem gdzie i jak umieścić zapisywanie takich danych.

2. Wiem że taki istnieje :P z tym że ja chciałem zrobić to na input text, i dodatkowo parę bajerów ;) A dokładnie 4 inputy, na dwie daty i dwie godziny i dodatkowo checbox. No i zastanawiałem się gdzie gdzie to scalić i z tego co widzę w kodzie symfony to funkcja doClean w validatorze takie cuda robi.
Rafał Toboła

Rafał Toboła Razor s.c. -
współwłaściciel

Temat: [1.4] jeden widget - kilka pól

Zaglądałeś tutaj?
http://www.symfony-project.org/more-with-symfony/1_4/e...
Tak samo, n.t. formularzy.
http://www.symfony-project.org/more-with-symfony/1_4/e...



Wyślij zaproszenie do