在 TWIG 中自定义表单呈现 {{ form(form)}} 与 {{ form_widget(form) }}

Customize form rendering {{ form(form)}} vs. {{ form_widget(form) }} in TWIG

我正在尝试在 Symfony 中自定义表单呈现 (http://symfony.com/doc/current/cookbook/form/form_customization.html)。我设法自定义了 "text" 小部件,但无法自定义 "submit" 小部件。我一直在以多种方式调试这个问题,结果遇到了以下(更简单的)障碍:

我的控制器非常标准,看起来像这样:

$user = new user();
$form = $this->createFormBuilder($user)
->add('name','text')
//other text items...
->add('save','submit', array('label'=> 'Signup'))

$form->handleRequest($request);
if($form->is Valid()) {
//render the template...
}

现在,如果我使用

在 TWIG 中呈现表单
{{ form(form) }}

一切正常(表单已提交)。但是如果我把它改成:

{{ form_widget(form) }}

"submit" 按钮没有提交任何东西(我猜这意味着要么按钮没有触发任何东西,要么我的表单不知何故不再有效)。

Symfony 文档 http://symfony.com/doc/current/cookbook/form/form_customization.html 似乎声明这两者应该以相似的方式呈现表单。谁能就此问题的来源提供一些指导?最终,当我尝试使用 {{ form_widget(form.save) }} 自定义 "submit" 按钮时,我遇到了同样的问题。谢谢。

The Symfony Best Practices book 说“最佳实践: 在模板中添加按钮,而不是在表单 类 或控制器中。"