我有以下树枝模板(代码在同一个文件中):
{% macro renderJob(fields) %}
// renders the job UI block, but I've removed it for simplicity
Hello world.
{% endmacro %}
{% block _jobs_widget %}
<div id="jobsContainer">
{% for fields in form.children %}
{% dump fields %}
{{ _self.renderJob(fields) }}
{% endfor %}
</div>
{% endblock %}
出于某种原因,升级到twig/twig = v2.1.0
后我收到了以下错误:
无法在字符串变量(“@ AppBundle / Jobs / form / job.html.twig”)上调用方法(“renderJob”)。
我一直试图找出造成这种情况的原因而没有任何运气。这曾经在1.3.x
中正常工作。 fields
变量包含正确的数据,但它似乎无法将其传递给renderJob
宏,或者找不到宏(这有点奇怪)?
答案 0 :(得分:10)
您是否尝试过以下操作?
CREATE TABLE [dbo].[Movies] (
[fname] NVARCHAR(50) NULL,
[lname] NVARCHAR(50) NULL,
[MoviePoster] VARCHAR (50) NULL,
答案 1 :(得分:3)
不知道为什么它之前有效,但你仍然需要import宏才能使用它:
{% macro renderJob(fields) %}
// renders the job UI block, but I've removed it for simplicity
Hello world.
{% endmacro %}
{% import _self as macro %}
{% block _jobs_widget %}
<div id="jobsContainer">
{% for fields in form.children %}
{% dump fields %}
{{ macro.renderJob(fields) }}
{% endfor %}
</div>
{% endblock %}
答案 2 :(得分:2)
我认为_self已从twigg 2.0中删除,可能需要在没有<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='container'></div>
的情况下进行检查。
检查_self
而不是{{ renderJob(fields) }}