我在我的 Symfony 2 项目中创建了自己的表单类型,它是日期类型的子类型。我在 Controller 中调用它:
$form = $this->createFormBuilder($customer)
->add('my_own_field_name', 'my_own_date_type', array())
->getForm();
在 Twig 模板中:
{{form_row(form.my_own-field_name)}}
是否可以对 Symfony2 说通过“form_row”函数调用我自己的 twig 来表示该字段,而不是使用日期类型表示
谢谢
最佳答案
考虑看看this part of the official SF2 documentation.
正如文档中所述,自定义类型的 getName 方法可帮助 SF2 找到自定义表单渲染器。由于您的类型名称是 my_date_type
,SF2 将尝试在配置的表单模板列表中查找 my_date_type_widget
block (如本文末尾和官方文档所示) )。
您只需在 bundle resources/views/Form/
文件夹中创建一个模板 fields.html.twig
,指定此 block (如文档中所示)并添加你自己的逻辑在里面。
不要忘记添加配置行
# app/config/config.yml
twig:
form:
resources:
- 'YourOwnBundle:Form:fields.html.twig'
告诉 symfony 始终使用它来呈现此表单类型。
关于forms - 如何为我自己的类型设置我自己的表单表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20952591/