【问题标题】:How to define custom block in Twig form theme used application-wide?如何在应用程序范围内使用的 Twig 表单主题中定义自定义块?
【发布时间】: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


【解决方案1】:

这很可能不在正常的树枝上。您需要编写一些扩展程序或下载它。我认为有人之前已经这样做了,所以请查看或遵守正常的 cms 规则。

希望这会有所帮助,祝你好运

【讨论】: