【问题标题】:Include function in Twig template Symfony在 Twig 模板 Symfony 中包含函数
【发布时间】:2016-02-25 11:41:35
【问题描述】:

大家好,我是 symfony 和 twig 的新手,我想要实现的是:

在我的 base.html.twig 文件中,我尝试 include('article.html.twig') 一切正常,直到我尝试从 article.html 覆盖(扩展)驻留在 base.html.twig 中的样式表块。枝条。

我收到一条错误消息,指出只有扩展 base.html.twig 才能实现(我知道它是这样工作的,但不是我想要的)

事实上,我想将与此模板中的 html 相关的 css 和 javascript 附加到 article.html.twig,并且只要我包含模板,它们只会在页面部分中链接(由浏览器加载)在任何其他模板中。它应该像一个独立的组件(webpart)或任何它被调用的那样工作。

你们中有人知道这样的事情是否可能吗?

提前致谢。

这是base.html.twig:

<!DOCTYPE html>
<head>
    <meta charset="UTF-8" />
    {% block stylesheets %}
    <link rel="stylesheet" type="text/css" media="all" href="{{ asset('style.css') }}" />
    {% endblock %}
</head>
<body>
<p>Test include:</p>
{{ include('article.html.twig') }}
</body>

这里是文章.html.twig

{% block stylesheets %}
{{ parent() }}
<link rel="stylesheet" type="text/css" media="all" href="{{ asset('custom.css') }}" />
{% endblock %}
<div id="article">
     This is an Article!
</div>

【问题讨论】:

  • 你能发布你的基地和文章树枝吗?
  • 您是否尝试在base.html.twig的javascripts块内添加一个新块?
  • 我已将必要的代码部分上传到帖子中。
  • 您将 article.html.twig 包含到 base.html.twig 中,为什么不直接在 base.html.twig 的普通样式表中设置它的样式?另外,我认为您可能希望包含一些不同的内容。以下是文档:twig.sensiolabs.org/doc/tags/include.html.
  • 当然我可以在 base.html.twig 中设置它的样式,但我想将 javascript 样式表和 html 保持在一个单元中。我希望我的样式表和 javascript 只加载到我包含文章的页面上,最好的方法是使用 php 函数 require_once 之类的东西,这样它们只会在我也想将它们保持在一起时被链接/加载,因为它们充当单个单元,我想将它们与包含一起用作插件组件。我只问 twig 是否有能力做这样的事情,因为我知道这是并且无法实现它。

标签: php symfony twig


【解决方案1】:

抱歉,我刚刚又看了你的问题,现在我完全理解你想要达到的目标了。

不幸的是,无法从包含中覆盖块。就像错误消息已经指出的那样...只有扩展原始模板才能覆盖块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-06
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多