Drupal - 了解如何打印变量

时间:2011-03-11 10:22:47

标签: php drupal

因此,在创建Drupal站点时(例如),这是一个非常常见的开发助手,可以在页面顶部打印表单等变量,例如:使用dpm()(假设安装了devel模块)。

我无法解决所有这些问题,以及可以使用它们的背景。

例如,我可以在自定义模块中的hook_form_alter实现中使用dpm($form)。没问题,变量很好地打印在页面顶部。

现在,如果我查看一个模板,比如说node.tpl.php,我看到有一堆可用的变量用于构建页面。所以如果我选一个,例如$ links,我会认为将<?php dpm($links); ?>添加到node.tpl.php会为我打印变量。但不!

为什么这样,我做错了什么? :)

5 个答案:

答案 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>