【发布时间】:2023-03-23 17:18:01
【问题描述】:
我想在我的应用程序范围的表单主题中创建一个自定义块:
config.yml:
twig:
form_themes:
- 'MyAdminBundle::bootstrap_3_layout_custom.html.twig'
在 bootstrap_3_layout_custom.html.twig 中:
{%- block test_block -%}
test
{%- endblock test_block -%}
它还包含 for_row、form_widgets.. 和其他一些重载,它们在我的子树枝上运行良好。
但是当我尝试这样做时:
{{ block('test_block') }}
,我得到一个Block "test_block" on template "@MyBundle/base.admin.html.twig" does not exist.
我想我应该在 Twig 扩展中注册一个“test_block”函数,但我找不到怎么做? 其他问题:如果上面的断言为真(必须定义 Twig 函数)有没有办法“广泛”地做到这一点,还是应该一个一个地注册块函数?
谢谢
【问题讨论】:
-
你到底想做什么。将
block
放入其他文件?或者只是写一些东西,以便你可以调用它。因为将块插入文件可以更有效地完成 -
我想对自定义块定义进行分组,比如你在 fields.html.twig 中你可以添加一个全局表单主题。但这里的区别在于我的一些自定义块只输出原始 html,可能带有嵌套块。我想到的示例是一个块,用于输出引导面板开始直到面板主体(可以称为 bootstrap_panel_start)和关闭它的补充(bootstrap_panel_end),并在应用程序范围内使用它,就像我们通常做的那样 form_start 和 form_end 包围 form_row .是不是更清楚了?
-
这很可能不在普通树枝中。您需要编写一些扩展程序或下载它。我认为有人以前做过这件事,但我不能再帮助你了。对不起。
-
好的,我会尝试重新定义我的需求以坚持框架,我可能会错过这个设计点。感谢您的宝贵时间!
标签: forms tags twig themes symfony