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

时间:2009-11-19 11:42:34

标签: php symfony1

我正在使用小部件

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 个答案:

答案 0 :(得分: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()),
))

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

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

应该这样做。

答案 1 :(得分:1)

您可以将必需选项设置为false

  

sfValidatorChoice(array('required'   =&GT; false,'choices'=&gt; array_keys(CountryPeer :: getAllCountry()),   ))

它应该有用。