Как установить имя формы с помощью Symfony formbuilder? - PullRequest
0 голосов
/ 20 марта 2019

Я создаю форму с помощью Symfony formbuilder:

$options =  [
     'attr'   => array('class' => 'form-control',),
     'data' => $data,
       ];

 $formBuilder->add($name, $class, $options);

Когда я сейчас смотрю на свою форму, поле выглядит так:

<input name="form[color]" value="#c651a8" class="form-control">

Но я хочу заменить form[color] на 12345. Результат, который я хотел бы получить:

<input name="12345" value="#c651a8" class="form-control">

Я пробовал разные вещи, например:

  $options =  [
           'attr'   => array('class' => 'form-control','name' => '12345',),
           'data' => $data,
           ];

или

  $options =  [
           'attr'   => array('class' => 'form-control'),
           'name' => '12345',
           'data' => $data,
           ];

Но я не смог найти решение.

1 Ответ

2 голосов
/ 20 марта 2019

Если вы используете класс FormType, реализующий метод getName():

public function getName()
{
    return null;
}

Если вы создаете форму с помощью службы form factory в следующем порядке:

$formBuilder = $this->get('form.factory')
    ->createNamedBuilder(null);

$options =  [
    'attr'   => array('class' => 'form-control',),
    'data' => $data,
];

$formBuilder->add('12345', $class, $options);
...