Symfony2 - 在树枝中自定义 form_start 函数

Posted

技术标签:

【中文标题】Symfony2 - 在树枝中自定义 form_start 函数【英文标题】:Symfony2 - form_start function customise in twig 【发布时间】:2013-09-20 12:14:12 【问题描述】:

表单助手 form_startform_end 在 twig 中很有用:

 form_start(form) 
 form_end(form) 

我可以自定义一些参数,例如methodaction。但我需要自定义其他参数,如class 或添加form-enctype

我可以吗?我应该把它设置成FormType.php吗?

从现在开始,我只是尝试将我的自定义值添加到 twig 函数中,如下所示:

 form_start(form, 'class': 'myclass', 'action': 'myaction') 
// fields...
 form_end(form, 'render_rest': true) 

但在这种情况下,例如,class 不会出现。

【问题讨论】:

【参考方案1】:

由于form_start 具有following signature,

form_start(view, variables)

因为class 不代表有效的变量名。您需要使用attr 属性将您的类指定为key/value 数组。

那么,试试……

 form_start(form, 'action': 'myaction', 'attr': 'class': 'your_class_name') 

还有……

您应该确保您的类型文件定义明确,以便让form_start 助手设置正确的form-enctype

自 Symfony 2.3 起,form_enctype(formView) 助手已被弃用。

【讨论】:

非常感谢!该解决方案完美运行。然后,我不必使用form-enctype 也不管我是否上传了文件,因为form_start() 自动设置了“form-enctype”。那是正确的吗?但是在表单标签中我看不到它。 为什么classvariables 数组中重复? 建议的代码 sn-p 与您的解释相反,因为您已将 class 作为变量! 应该是 form_start(form, 'attr': 'class': 'your-class' ) id 也是如此。它还必须放在attr 数组中。

以上是关于Symfony2 - 在树枝中自定义 form_start 函数的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 树枝模板中图像的路径

在基本视图(树枝)+ symfony2 中使用数据库中的数据

如何在Symfony2中将json渲染成树枝

在树枝视图中访问 Symfony 断言

Symfony 2 树枝拆分功能未按预期工作

使用 Symfony 2 本地化树枝中的日期