Symfony2 - 在树枝中自定义 form_start 函数
Posted
技术标签:
【中文标题】Symfony2 - 在树枝中自定义 form_start 函数【英文标题】:Symfony2 - form_start function customise in twig 【发布时间】:2013-09-20 12:14:12 【问题描述】:表单助手 form_start
和 form_end
在 twig 中很有用:
form_start(form)
form_end(form)
我可以自定义一些参数,例如method
或action
。但我需要自定义其他参数,如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”。那是正确的吗?但是在表单标签中我看不到它。
为什么class
在variables
数组中重复?
建议的代码 sn-p 与您的解释相反,因为您已将 class
作为变量!
应该是 form_start(form, 'attr': 'class': 'your-class' )
id
也是如此。它还必须放在attr
数组中。以上是关于Symfony2 - 在树枝中自定义 form_start 函数的主要内容,如果未能解决你的问题,请参考以下文章