2013-02-28 8 views
1

Я пытаюсь установить пользовательские значения для параметра «Выбрать параметры», используя типы форм и «выбор_list».Значения параметров Symfony2 в ChoiceList

Тип:

->add('status', 'choice', array(
     'constraints' => array(
     new Assert\NotBlank(array('message' => 'Required field missing: status')) 
    ), 
     'error_bubbling' => true, 
     'choice_list' => new StatusChoiceList() 

StatusChoiceList файл:

class StatusChoiceList extends LazyChoiceList 
{ 
    /** 
    * Loads the choice list 
    * 
    * Should be implemented by child classes. 
    * 
    * @return ChoiceListInterface The loaded choice list 
    */ 
    protected function loadChoiceList() 
    { 
     $array = array(
      'Preview' => 'Preview', 
      'Hidden' => 'Hidden', 
      'Live' => 'Live' 
     ); 
     $choices = new ChoiceList($array, $array); 

     return $choices; 
    } 
} 

избранных тегов имеют неправильное значения 0,1,2 и хорошие этикетки

ответ

3

ChoiceList Класс, используемый для выбора произвольного типы данных. В вашем случае вместо этого вы должны использовать SimpleChoiceList. Первый параметр - это массив с выбором в качестве ключей и меток в качестве значений.

protected function loadChoiceList() 
{ 
    $array = array(
     'Preview' => 'Preview', 
     'Hidden' => 'Hidden', 
     'Live' => 'Live' 
    ); 
    $choices = new SimpleChoiceList($array); 

    return $choices; 
} 
+0

Спасибо! Я не знал о «SimpleChoiceList», и это именно то, что я искал. – jayem

Смежные вопросы