我有这段代码:
Twig模板:
<div class="content-items-wrapper">
{% for item in home.latest_posts %}
{% include "partials/content-item.twig" with item %}
{% endfor %}
</div>
在我的主题文件中:
$context['home']['latest_posts'] = new Timber::get_posts([
'posts_per_page' => 6,
]);
使用这些代码时,我会收到以下通知:
警告:array_merge():参数#2不是//content/plugins/timber-library/vendor/twig/twig/lib/Twig/Environment.php(462)中的数组:eval()'d code第86行
接着是一个致命的错误:
奇怪的是:当我不在Twig模板中使用include时,只是直接使用这个包含的内容,错误就消失了。 也只是在包含的部分中放置一个字符(甚至没有)会产生错误。捕获致命错误:传递给Twig_Template :: display()的参数1必须是数组类型,给定null,在/ content / plugins / timber-library / vendor / twig / twig / lib / Twig / Environment中调用。 php(462):第86行的eval()代码,在第401行的//content/plugins/timber-library/vendor/twig/twig/lib/Twig/Template.php中定义
同样,当不使用Timber::get_posts()
时,只是使用正确的数据填充数组时,我不会收到任何错误。
但显然两者都不是真正想要的解决方案: - )
这可能是什么?
PS:我有一个只有前端的版本(运行gulp-twig),由JSON数据提供,它运行正常。
编辑:修复了示例(复制/粘贴错误)
答案 0 :(得分:0)
您不需要像home.items
一样添加$context['home']
或$context['home']['latest_posts']
这样的上下文{1}}吗?
答案 1 :(得分:0)
问题解决了!
更改
{% include "partials/content-item.twig" with item %}
进入{% include "partials/content-item.twig" with { 'item' : item } %}
就可以了。