Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Własne pole filtru
Forum PHP.pl > Forum > PHP > Frameworki
phpion
Hej,
mam pytanko odnośnie generatora admina w Symfony 1.4. Otóż mam tabelę, w której klucz główny jest na kolumnie id (nic nadzwyczajnego). Chciałbym dać możliwość wyszukiwania rekordu właśnie po tej kolumnie. Zmodyfikowałem więc plik filtru formularza następująco:
  1. class CategoryFormFilter extends BaseCategoryFormFilter {
  2. public function configure() {
  3. $this->setWidget('id', new sfWidgetFormInputText());
  4. $this->setValidator('id', new sfValidatorInteger(array('required' => false)));
  5. }
  6. }

Teraz pole ładnie się pojawia w filtrze, ale nie działa (nie wchodzi do warunku w SELECTie). Przejrzałem wygenerowany kod klasy akcji, ale nie znalazłem miejsca, w którym mógłbym ewentualnie dopisać obsługę tego warunku.
Prosiłbym o pomoc w nakierowaniu mnie gdzie mam szukać.
Z góry dzięki za pomoc,
pion
destroyerr
Formularz filtru posiada metodę getFields, która zwraca pola, wraz z typem, do filtrowania. Najlepiej jak podejrzysz klasę bazową jakiegoś formularza.
W Twoim przypadku będzie to coś takiego:
  1. public function getFields()
  2. {
  3. return array_merge(parent::getFields(), array(
  4. 'id' => 'Number'
  5. ));
  6. }
phpion
Tylko, że w klasie bazowej (BaseCategoryFormFilter) mam:
  1. public function getFields()
  2. {
  3. return array(
  4. 'id' => 'Number', // jest tutaj
  5. 'parent_id' => 'Number',
  6. 'name' => 'Text',
  7. 'position' => 'Number',
  8. 'is_active' => 'Boolean',
  9. );
  10. }
destroyerr
Aha. W sumie to przeoczyłem Twój widżet i walidator. Użyj sfWidgetFormFilterInput i sfValidatorPass.
phpion
Super, dzięki!

// Ciach! Begowski problem... tongue.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.