php Drupal -了解如何打印变量

mrphzbgm  于 2023-04-10  发布在  PHP
关注(0)|答案(6)|浏览(109)

因此,当创建一个Drupal站点时(例如),它是一个非常常见的开发助手,可以在页面顶部打印表单等的变量,例如使用dpm()(假设安装了devel模块)。
我很难理解所有的方法,以及它们可以使用的上下文。
例如,我可以在我的自定义模块中的hook_form_alter实现中使用dpm($form)
现在,如果我查看一个模板,比如说node.tpl.php,我会看到有大量的可用变量用于构建页面。所以如果我选择一个,例如$links,我会认为将<?php dpm($links); ?>添加到node.tpl.php会为我打印出变量。但是没有!
为什么会这样,我做错了什么?:)

sqougxex

sqougxex1#

dpm()使用drupal_set_message()。在页面呈现过程中的某个时刻,Drupal打印所有使用此函数设置的消息。
你在那之后使用了dpm(),因此在这个页面上添加消息已经太晚了。但是你应该在下一个页面或者刷新当前页面之后看到它们。虽然对调试没有帮助。
您可能想给予Theme Developer Module

cx6n0qe3

cx6n0qe32#

如果您向现有模板添加新变量,要查看更改,必须首先刷新Drupal缓存。
Take a look here to know how to flush Drupal cache

cotxawn7

cotxawn73#

最简单的方法:

echo "<pre>";
var_dump($row);    
echo "</pre>"; 
die();
2w3rbyxf

2w3rbyxf4#

dpm()将调试内容放入会话,如果内容太大,则不会显示。
试试die(kpr($vars));

fnvucqvd

fnvucqvd5#

显示所有节点变量:

<ol>
    {% for key, value in node  %}
        <li>{{ key }}</li>
    {% endfor %}
</ol>
kse8i1jr

kse8i1jr6#

最简单可行的选择是

dump($variables);

其他选项包括

var_dump($variables); - but it will give a memory error sometime.
print_r($variables); - but it will give a memory error sometime.
dpm($variables); - Sometimes does not work on the front end.

相关问题