Установить значения по умолчанию в опции выбора в Symfony? - PullRequest
3 голосов
/ 19 ноября 2009

Я использую виджет

sfWidgetFormChoice(array (
  'choices' => CountryPeer::getAllCountry(),
))

и валидатор как

sfValidatorChoice(array (
  'choices' => array_keys(CountryPeer::getAllCountry()),
))

Я получаю элемент выбора как

<select id="country" name="reg_form[country]">
  <option value="1">India</option>
  <option value="2">Srilanka</option>
</select>

Я хочу добавить опцию --Select Countries-- по умолчанию:

<option value="">--Select Countries--</option>

, чтобы он выдавал требуемую ошибку, если я не выбираю какую-либо страну.

Ответы [ 2 ]

5 голосов
/ 19 ноября 2009

Сначала добавьте параметр в массив вариантов, но не в валидатор, чтобы он выдал ошибку:

$def_val = array(-1=>"--Select Countries--");

$sel_choices = array_merge($def_val,CountryPeer::getAllCountry());

sfWidgetFormChoice(array (
  'choices' => $sel_choices,
))

sfValidatorChoice(array (
  'choices' => array_keys(CountryPeer::getAllCountry()),
))

А затем установите значение «-1» в качестве значения по умолчанию:

 $your_form->setDefault('country', -1);

Должен это сделать.

1 голос
/ 19 ноября 2009

Вы можете установить для требуемой опции значение false

sfValidatorChoice (array ('required') => false, 'choices' => array_keys (CountryPeer :: getAllCountry ()), ))

должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...