twig模板引擎的form_widget

时间:2011-09-22 05:55:47

标签: php template-engine twig

我目前正在更新PHP应用程序,以便它使用非常好的twig template engine

我遇到了如何解决这个问题的障碍。该应用程序有自己的一组自定义开发的表单类。实质上,可以通过编程方式向表单对象添加字段,设置方法和操作。完成所有操作后,将调用render()方法,然后为表单吐出生成的HTML代码段。

我可以使用raw过滤器在模板中输出表单,如下所示:

{{ form|raw }}

虽然这很有效,但我注意到symfony2有一个名为form_widget()的方法,它专门处理渲染表单而不必输出为原始。

我想调整应用程序,以便我可以使用form_widget(),但是,我无法找到任何深入的文档。任何人都可以指出在不使用symphony2框架的情况下如何将数据传递给form_widget()?无论是数组,对象还是别的什么?

1 个答案:

答案 0 :(得分:1)

在浏览了Symphony的源代码之后,看起来他们所做的就是创建了一个扩展,以便将表单呈现为HTML:

'form_widget' => new \Twig_Function_Method($this, 'renderWidget', array('is_safe' => array('html'))),

所以,我想我需要做的就是创建自己的枝条扩展,以提供类似的功能。