Я новичок в Symfony2 (версия 2.7), и я пытаюсь получить значение из представленной формы. Используя $form->getData()
, я получаю индекс, соответствующий выбранному значению в списке.
Например, если $ test является массивом:
$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
?
$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;
}