【问题标题】:Why is this not rendered by the twig template?为什么这不是由树枝模板呈现的?
【发布时间】:2018-04-21 03:46:27
【问题描述】:

我有一个基于 2.7.3 Symfony 的 Symfony 应用程序。 我想覆盖位于下面的这个树枝模板:

src/Something/Bundle/SomethingBundle/Resources/public/templates/family/custom/custom.html.twig

这个文件看起来像这样:

<div class="AknFieldContainer">
<div class="AknFieldContainer-header">
    <label class="AknFieldContainer-label control-label required" for="<%- fieldName%>">
        {{ form_row(form.label) }}
    </label>
</div>
<div class="AknFieldContainer-inputContainer">
    {{ form_row(form.templateCode) }}
</div>

但它显示

我做错了什么?

我已经在我的包中覆盖了这个代码。

src/Something/Bundle/SomethingBundle/Resources/views/category-tree/tab/property.html.twig

我看到的唯一区别是此代码位于视图文件中。话虽如此,我相信 twig 引擎只会查看视图内部的代码。不过我不确定。

仍在尝试将路由从 Resources/public 更改为 Resources/views,但由于我们正在覆盖,不确定我是否会成功。 话虽如此,我如何使用 twig 在我的 Resources 文件中渲染其他内容?我如何渲染不在视图目录中的东西?

【问题讨论】:

  • 您是否正确覆盖了捆绑包?
  • 您好,谢谢您的回复。其他东西有效,这意味着我有。
  • 好的,尝试添加更多信息。就像您的文件夹的真实名称和原始名称以及所有其他名称一样
  • 为什么是for="&lt;%- fieldName%&gt;",我觉得应该是for="{%- fieldName%}"
  • 感谢 YouneL 的回复,我已将其更改为与您的相似。我也认为我们在这里错过了重点。因为没有按应显示的那样显示。

标签: php symfony twig


【解决方案1】:

在你的 config.yml 中试试

twig: paths: '%kernel.root_dir%/../src/Something/Bundle/SomethingBundle/Resources/public/templates': my_templates

并包含@my_templates/family/custom/custom.html.twig

Symfony docs

【讨论】:

  • 嘿 Snegirekk,感谢您的回复。但它不起作用。我已经在路径中注册了公共/模板,这部分工作,但我不能将它包含在模板本身中。 {{ include("@my_templates/family/custom/custom.html.twig") }} 它仍然将此包含显示为纯 html。 :-/ 你知道我做错了什么吗?
  • 在 v2.7 的 symfony 文档中,他们告诉我们使用 {{ include("something") }},但是 {% include("something") %} 在 symfony3 中对我有用。 {{ display_variables.only }}
  • 嗯,还是不行。不管我怎么放进去。
  • 对不起,这是我的错误。 %kernel.project_dir% 适用于 v3.3,在 v2.7 中需要使用 %kernel.root_dir%/..。您没有收到任何错误或异常吗?无论如何,我的答案现在更新了,试试吧。我刚刚启动 v2.7.3 项目来测试这个案例,它对我有用。
  • 是的,我已经看到了.. :-)
猜你喜欢
  • 1970-01-01
  • 2013-08-07
  • 2017-09-30
  • 2019-05-07
  • 1970-01-01
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多