2009-11-19 5 views
3

J'utilise le widgetDéfinir les valeurs par défaut dans l'option Sélectionner dans Symfony?

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

et validateur comme

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

Je reçois un élément de sélection comme

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

Je veux ajouter une option --Select Countries-- par défaut:

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

afin qu'il devrait lancer une erreur requise, si je ne choisis aucun pays.

+0

Veuillez mettre en forme le code comme «échantillon de code». –

Répondre

5

D'abord, ajoutez l'option à l'éventail de choix, mais pas dans le validateur, il va jeter l'erreur:

$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()), 
)) 

Et puis réglez l'option « -1 » comme valeur par défaut:

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

Devrait le faire.

+0

ouais! cela fonctionne et donne l'erreur invalide. merci Danii –

1

Vous pouvez définir l'option requise false

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

il devrait fonctionner.

+1

car ce champ est requis et ne peut pas être nul, donc doit garder required = true –

Questions connexes