2017-01-24 3 views
2

У меня есть форма с полем местоположения. Создание класса ChoiceType с выпадающим списком и для параметров. Я определил все местоположения в config.yml как параметры.Как получить параметры массива Config в контроллере, чтобы отправить его на веток для отображения его в форме

config.yml:

parameters: 
    locations:[location1, location2, location3] 

Контроллер поля формы:

$form = $this->createFormBuilder($abc) 
    ->add('location', ChoiceType::class, array(
     'label' => 'Select Location', 
     'choices'=> $this->getParameter('locations'), 
    )) 
    ->getForm(); 

Это отображает местоположение массива, т.е. 0 для LOCATION1, 1 для LOCATION2 и т.д., но я хочу, чтобы отобразить массив значений.

Другие предметы, которые я пробовал, поместив эти параметры в массив, а затем попробовав array_value. Я должен показать местоположение по:

$arrayincontroller=$this->getParameter('locations') 

и в форме:

->add('location', ChoiceType:class, array('label' => 'Select Location', 'choices'=> array($arrayincontroller[0] => $arrayincontroller[0]) 

, но не хочу, чтобы написать каждый, и каждое место, как это. Есть ли лучший способ передать значения в форму. Попробовал включить foreach, но думаю, я не могу этого сделать.

ответ

1

Вы можете определить параметры как массив, как следующие:

parameters: 
    locations: 
     location1: location1 
     location2: location2 
     location3: location3 

Получить всегда как:

$arrayincontroller=$this->getParameter('locations') 

Но использовать следующим образом:

->add('location', ChoiceType:class, array('label' => 'Select Location', 'choices'=> $arrayincontroller); 

Надежда эта помощь

+0

Большое спасибо, он работал –

+1

Есть ли недостаток в выполнении -> add ('location', ChoiceType: class, array ('label' => 'Select Location', 'choice' => $ this-> getParameter ('locations'); –

+0

Привет @HarshulR да нет проблем делать прямо, есть ли у вас комментарий – Matteo