Не удается получить значения параметров из формы symfony2

0

поскольку титл говорит, что я не могу получить эти значения, вот мой код:

Я получил эту форму (не отображался):

$default = array('default' => '');

$form2 = $this->createFormBuilder($default)
    ->add('Users', 'choice', array(
    'choices' => $info,
     ))
    ->getForm();

Где $ info Является массивом строк.

И я пытаюсь получить доступ к следующим данным:

if ($request->getMethod() == 'POST') {

    $data = $this->get('request')->request->get('form');
    $user = implode(",", $data);
}

Но результат, который я получаю, выглядит примерно так:

0, ACARxcur37cumZiRm5AmmyRJdC5UpuO1hb43I5LFx2A

Я предполагаю, что 0 является выбранным индексом, но почему я получаю этот код? Похоже, получил какой-то формат.

Пытаясь предложить Крису следующее:

    $default = array('default' => '');
    $info = array();

    $form = $this->createFormBuilder($default)
            ->add('Users', 'choice', array(
                'choices' => $info,
            ))
            ->getForm();

    $form->handleRequest($request);

    //1st try:
    $data = $form2->get('Users')->getConfig()->getOption('choices');

    //2nd try:
    $data = $form2->get('Users');

В первой попытке я ничего не получаю, он кажется пустым.

Во второй попытке я получаю сообщение об ошибке.

PD: Мне нужно получить выбранное значение, а не полное поле.

Спасибо за чтение, надеюсь, вы можете мне помочь.

Теги:
forms

2 ответа

0

Решенный, поскольку я думал, что "0" в результате "0, ACARxcur37cumZiRm5AmmyRJdC5UpuO1hb43I5LFx2A" на самом деле является значением параметра, поэтому решение изменило это значение при создании $ info.

Вместо:

array_push ($ информации, $ пользователя);

Я сделал: $ info [$ user] = [$ user];

Таким образом, значение параметра и метка содержат то же самое.

Всем спасибо.

0

Вы должны обрабатывать форму, используя метод Symfony.

Поэтому вместо того, чтобы делать

($request->getMethod() == 'POST) Используйте форму, чтобы получить данные не $ _REQUEST

сделал бы это

$form->handleRequest($request);

if($form->isValid()) {
   $data = $form->get('Users')->getData();
}
  • 0
    попробовал таким образом, но как мне построить форму? Я имею в виду в $ form-> handleRequest ($ request); Я должен построить эту форму, прежде чем правильно?

Ещё вопросы

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