因此,在创建Drupal站点时(例如),这是一个非常常见的开发助手,可以在页面顶部打印表单等变量,例如:使用dpm()
(假设安装了devel模块)。
我无法解决所有这些问题,以及可以使用它们的背景。
例如,我可以在自定义模块中的hook_form_alter实现中使用dpm($form)
。没问题,变量很好地打印在页面顶部。
现在,如果我查看一个模板,比如说node.tpl.php,我看到有一堆可用的变量用于构建页面。所以如果我选一个,例如$ links,我会认为将<?php dpm($links); ?>
添加到node.tpl.php会为我打印变量。但不!
为什么这样,我做错了什么? :)
答案 0 :(得分:3)
dpm()
使用drupal_set_message()
。在页面渲染过程中的某个时刻,Drupal会打印使用此功能设置的所有消息
在那之后您正在使用dpm()
,因此将消息添加到此页面为时已晚。但是,您应该在下一页或刷新当前后看到它们。虽然没有帮助调试。
您可能想尝试Theme Developer Module。
答案 1 :(得分:2)
如果向现有模板添加新变量,要查看更改,必须先刷新Drupal缓存 Take a look here to know how to flush Drupal cache
答案 2 :(得分:2)
最简单的方法:
echo "<pre>";
var_dump($row);
echo "</pre>";
die();
答案 3 :(得分:0)
dpm()将调试内容放到会话中,如果内容太大,则不会显示。
尝试die(kpr($vars));
答案 4 :(得分:0)
显示所有节点变量:
<ol>
{% for key, value in node %}
<li>{{ key }}</li>
{% endfor %}
</ol>