2013-06-13 2 views
2

Я был бы признателен за помощь в создании формы symfony 2 типа выбора. Я попытался найти ответы и последовал за несколькими выводами, но не смог найти то, что я ищу.Передайте массив значений в качестве выбора в поле выбора типа symfony 2 form

Класс QuestionType приведен ниже с четырьмя значениями (которые предназначены для выбора в форме). Однако, когда форма отображается, выбор не отражает значения, которые были переданы в класс. Любая идея, что пошло не так? Заранее спасибо!

class QuestionType extends AbstractType 
{ 
    private $foptionone; 
    private $foptiontwo; 
    private $foptionthree; 
    private $foptionfour; 

    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $optionone=$this->foptionone; 
     $optiontwo=$this->foptiontwo; 
     $optionthree=$this->foptionthree; 
     $optionfour=$this->foptionfour; 

     $builder->add('sanswer','choice',array(
      'expanded'=>true, 
      'choices'=>array(
       'a'=>$optionone, 
       'b'=>$optiontwo, 
       'c'=>$optionthree, 
       'd'=>$optionfour) 
      ) 
     ); 
    } 

    public function _construct($qoptionone,$qoptiontwo,$qoptionthree,$qoptionfour) 
    { 
     $this->foptionone=$qoptionone; 
     $this->foptiontwo=$qoptiontwo; 
     $this->foptionthree=$qoptionthree; 
     $this->foptionfour=$qoptionfour; 
    } 

    public function getName() 
    { 
     return 'questiontype'; 
    } 
+0

Я предлагаю вам использовать массив для переменных. или даже лучше использовать метод setDefaultOptions() для ввода значений не через конструктор, а через массив '$ options' вашего метода' buildForm'. Дополнительную информацию см. В [документации] (http://symfony.com/doc/master/book/forms.html). – ferdynator

ответ

0

Конструкторы имеют два подчеркивания, а не один:

public function __construct(...) 

Ваш метод _construct() никогда не вызывался на всех.

+0

спасибо миллион! это было там все время, пока я смотрел повсюду! – kerwei

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