在Symfony的Select选项中设置默认值?

Har*_*rup 3 php symfony1

我正在使用小部件

sfWidgetFormChoice(array (
  'choices' => CountryPeer::getAllCountry(),
))
Run Code Online (Sandbox Code Playgroud)

和验证者为

sfValidatorChoice(array (
  'choices' => array_keys(CountryPeer::getAllCountry()),
))
Run Code Online (Sandbox Code Playgroud)

我得到一个选择元素

<select id="country" name="reg_form[country]">
  <option value="1">India</option>
  <option value="2">Srilanka</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我想添加一个--Select Countries--默认选项:

<option value="">--Select Countries--</option>
Run Code Online (Sandbox Code Playgroud)

如果我没有选择任何国家,那么它应该抛出一个必要的错误.

dan*_*nii 5

首先,将选项添加到选择数组中,但不添加到验证器中,因此会抛出错误:

$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()),
))
Run Code Online (Sandbox Code Playgroud)

然后将"-1"选项设置为默认值:

 $your_form->setDefault('country', -1);
Run Code Online (Sandbox Code Playgroud)

应该这样做.