我想在我的服务中生成一个无类表单.
我这样做的方式是:
class StepSummary implements StepInterface
{
public function __construct($container)
{
$this->container = $container;
}
public function getVariables()
{
$form = $this->container->get('form.factory')->createBuilder('text')
->add('accept')
->getForm();
return array('form' => $form->createView());
}
}
Run Code Online (Sandbox Code Playgroud)
在API中,我发现我需要将表单类型传递给FormBuilder- 我没有找到任何引用,所以我放了虚构的text字符串.现在它以这种方式呈现表单:
<input type="text" id="text" name="text" required="required" />
Run Code Online (Sandbox Code Playgroud)
显然没有提到该accept领域.
控制器的createForm()方法在这里非常有用:
public function createFormBuilder($data = null, array $options = array())
{
return $this->container->get('form.factory')->createBuilder('form', $data, $options);
}
Run Code Online (Sandbox Code Playgroud)
所以解决方案是:
$form = $this->container->get('form.factory')->createBuilder('form')
->add('accept')
->getForm();
Run Code Online (Sandbox Code Playgroud)