1

我目前正在更新一个 PHP 应用程序,以便它使用非常好的twig 模板引擎

我遇到了如何解决这个问题的障碍。该应用程序有自己的一组自定义开发的表单类。本质上,可以以编程方式向表单对象添加字段、设置方法和操作。一旦这一切都完成了,render()方法就会被调用,然后为表单生成一个生成的 HTML 片段。

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

{{ form|raw }}

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

我想调整应用程序以便我可以使用form_widget(),但是,我无法找到任何深入的文档。谁能指出如何在form_widget()不使用 symphony2 框架的情况下传递数据?无论是数组、对象还是其他东西?

4

1 回答 1

1

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

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

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

于 2011-09-22T06:16:41.440 回答