Twig: 动态块名称

创建于 2011-04-12  ·  7评论  ·  资料来源: twigphp/Twig

对块名称使用变量不起作用。

{% set block_name = "my_block_name" %}

{% 块 block_name %}
一些html ...
{% 结束块 %}

最有用的评论

块名称是模板结构的一部分,因此必须在编译时知道。
变量仅在运行时已知。

所有7条评论

因为block_name表示为字符串'block_name'

抱歉,您是说您不能使用带有树枝的动态块,或者我以错误的方式使用它?

你是对的,没有动态块名称

您不能使用动态块。 在 Twig 用户邮件列表上发布您的用例。

很抱歉打开一个冷箱子^^。 我想我可能遇到了一个可以从动态块名称中受益的用例......

我使用带有单表继承的 Doctrine(基本抽象类 = 文章,而新闻 + 常见问题扩展文章)。

然后,我创建了能够创建新闻和常见问题解答的表单类。 但是所有表单都使用相同的树枝模板。 然后我需要自定义一个字段模板(比如 article.product),如这里所述。

问题是,字段的名称会根据使用的表单而变化。 名称将是 news_product 或 faq_product,因此能够像这样自定义我的表单字段以避免重复会很方便:

{%- block '_'~type~'_product_widget' -%} ... {% endblock %}

经过一番研究,我通过使用getBlockPrefix在不同的表单类型类中强制使用表单的前缀来解决这个问题,这样所有表单都会有相同的字段名称,我可以简单地自定义article_product:

public function getBlockPrefix(){ return 'article'; }

所以只是想记录这个可能对某人有帮助的用例......

块名称是模板结构的一部分,因此必须在编译时知道。
变量仅在运行时已知。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

yguedidi picture yguedidi  ·  4评论

SDPrio picture SDPrio  ·  3评论

koflerdavid picture koflerdavid  ·  3评论

unique1984 picture unique1984  ·  4评论

garak picture garak  ·  5评论