2016-01-16 2 views
1

Я новичок в Symfony2 (версия 2.7), и я пытаюсь получить значение из представленной формы. Используя $form->getData(), я получаю индекс, соответствующий выбранному значению в списке.Symfony2 - Получить значение формы, а не ключ

Например, предположим, $ тест является массивом:

$form = $this->createFormBuilder($test) 
->add('abc', 'choice', 
    array('choices' => array(
     '0' => 'option1', 
     '1' => 'option2', 
     '2' => 'option3' 
    ))) 
->getForm(); 
$form->handleRequest($request); 
if ($form->isValid()) { 
    $data = ($form->getData()); 
} 

Тогда $data будет 1, если я выбираю option2. Я также пытался установить choices_as_values в true, но затем я получил индексы массива в раскрывающемся списке.

Что я могу сделать для того, чтобы получить $data, равный option2?

ответ

1
$values = array('option1', 'option2', 'option3'); 

$form = $this->createFormBuilder($test) 
->add('abc', 'choice', array('choices' => $values)) 
->getForm(); 

$form->handleRequest($request); 

if ($form->isValid()) { 
    $data = $form['abc']->getData(); 

    //returns option1 if option1 is selected etc.. 
    $choice = $values[$data]; 

    //returns choice value 
    $choice = $data; 
} 
+0

Спасибо! Работал как шарм. – Rinku

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