在drupal 7中,我们可以使用devel模块中的kpr()
或php print_r()
和var_dump()
函数将$ node对象打印到node.tpl文件中或挂接预处理节点,以进行调试和查找字段或..] >
但是在drupal 8中,我们不能在树枝中使用php函数,我尝试了kint()
和dump()
在树枝中打印节点,但没有成功。 (我已经在services.yml中设置了debug: true
)(更多详细信息:twig文件中的kint(node)
造成了无限循环,并导致浏览器中的内存用尽)。
所以问题是如何使用树枝或钩子预处理节点在drupal 8中打印节点对象?
Q更新v 1.0:
我有文章的自定义树枝模板:node--article.html.twig,它可以正常工作:
<article>
<div>
{{ content.body|render }} {# this works #}
</div>
<footer>
{{ kint(node.field_custom.value) }} {# prints the custom field value without any problem #}
{{ kint(node) }} {# this causes infinite loop and memory issue #}
{{ content }} {# prints all content fields without any problem #}
{{ kint(content) }} {# nothing happen or display with this! #}
{{ kint(label) }} {# infinite like node #}
</footer>
在drupal 7中,我们可以使用devel模块中的kpr()或php print_r()和var_dump()函数在node.tpl文件中打印$ node对象,或者挂接预处理节点以调试和查找字段或...
我知道kint()
函数不是问题,因为它显示了为测试创建的自定义数组和对象。所以问题是节点对象本身。它很大,使用kint()
打印时出现了内存限制问题。当我在memory_limit= -1
文件中将内存限制更改为-1 php.ini
进行测试时,它占用了系统的所有16GB内存,还不够!