Skip to content

Formularze Symfony: select ograniczony przez wartość innego pola

by zergu on Maj 12th, 2010 Blip Facebook Flaker Twitter Wykop

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

From → Symfony

No comments yet

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS

Notify me of followup comments via e-mail. You can also subscribe without commenting.