Symfony2 - получить значение формы, а не ключ

1

Я новичок в 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?

Теги:

1 ответ

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
    Спасибо ! Работал как шарм.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню