我目前正在更新PHP应用程序,以便它使用非常好的twig template engine。
我遇到了如何解决这个问题的障碍。该应用程序有自己的一组自定义开发的表单类。实质上,可以通过编程方式向表单对象添加字段,设置方法和操作。完成所有操作后,将调用render()
方法,然后为表单吐出生成的HTML代码段。
我可以使用raw
过滤器在模板中输出表单,如下所示:
{{ form|raw }}
虽然这很有效,但我注意到symfony2有一个名为form_widget()的方法,它专门处理渲染表单而不必输出为原始。
我想调整应用程序,以便我可以使用form_widget()
,但是,我无法找到任何深入的文档。任何人都可以指出在不使用symphony2框架的情况下如何将数据传递给form_widget()
?无论是数组,对象还是别的什么?
答案 0 :(得分:1)
在浏览了Symphony的源代码之后,看起来他们所做的就是创建了一个扩展,以便将表单呈现为HTML:
'form_widget' => new \Twig_Function_Method($this, 'renderWidget', array('is_safe' => array('html'))),
所以,我想我需要做的就是创建自己的枝条扩展,以提供类似的功能。