如何使用 Symfony formbuilder 设置表单名称?

How can I set the form name with Symfony formbuilder?

我正在使用 Symfony formbuilder 创建一个表单:

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

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

当我现在查看我的表单时,该字段如下所示:

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

但是我想用12345替换form[color]。我喜欢的结果是:

<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,
           ];

但是我找不到解决方法。

如果您使用 FormType class 实施 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);