Code42 > Symfony > Formularze Symfony: select ograniczony przez wartość innego pola

Formularze Symfony: select ograniczony przez wartość innego pola

Opis na przykładzie Propela.

Problem
Jak ograniczyć liczbę opcji w sfWidgetFormChoice na podstawie wartości z innego pola formularza. Mowa o ograniczeniu stałym, zdefiniowanym w klasie formularza.

Rozwiązanie
Będąc w klasie formularza mamy dostęp do wartości odpowiadającego obiektu, tylko gdy dany formularz zostanie zainicjalizowany poprzez podanie obiektu do konstruktora (czyli przykładowo $this->form = new SampleForm ($sample_object)). Wtedy możemy pobrać jakąś informację z obiektu i na jej podstawie stworzyć Criteria ograniczające:

$c = new Criteria();
$c->add (APeer::XYZ, $this->getObject()->getAsd());
$this->widgetSchema['asd'] = new sfWidgetFormPropelChoice (array (
    'model' => 'B', 'criteria' => $c));

Podobne wpisy:

  1. Walidacja jednego pola formularza w symfony
  2. Symfony+Propel: domyślne sortowanie
  3. Symfony: Paginacja przy własnych/nietypowych warunkach SQL
Kategorie:Symfony Tagi:
  1. Brak komentarzy
  1. Brak jeszcze trackbacków