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

时间:2015-03-17 21:52:20

标签: forms symfony widget twig

我正在尝试在Symfony(http://symfony.com/doc/current/cookbook/form/form_customization.html)中自定义表单呈现。我设法自定义“文本”小部件,但无法自定义“提交”小部件。我一直在以多种方式调试这个问题,并且出现了以下(更简单的)障碍:

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

$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) }}

“提交”按钮不提交任何内容(我猜这意味着该按钮不会触发任何内容,或者我的表单不再有效)。

Symfony文档http://symfony.com/doc/current/cookbook/form/form_customization.html似乎表明这两者应该类似地呈现表单。任何人都可以就这个问题的来源提供一些指导吗?最后,当我尝试使用{{form_widget(form.save)}}来自定义“提交”按钮时,我遇到了同样的问题。感谢。

1 个答案:

答案 0 :(得分:1)

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