【Drupal 8】中调试Twig模板中的变量教程

常言:工欲善其事,必先利其器。Drupal 主题开发中技巧也不少,学会这些技巧会起到事半功倍的效果。今天给大家推介的是如何调试打印出Twig模板中的变量,不妨一看!Oops,Drupal 8!

在drupal 8 twig模板中,你可以在注释中找到大部分、常用的模板变量。但是,当一些模块或者主题引入新变量的时候,该怎么办呢?

Twig模板提供了一个函数——‘dump’,方便你去发现、检查这些变量。

使用‘dump’函数有个小前提,你需要启用twig的debug模式。关于如何启用twig的debug模式 https://www.drupal.org/node/1903374。

检查单个变量

{{ dump(title) }}

简单吧!

那我想看所有的变量,怎么整?

找出所有变量

{{ dump() }}

找出变量可用的key

{{ dump(_context|keys) }}

Twig中的全局可用变量

There are additional global variables available in all Twig templates:
_self references the current template and contains advanced information about a template, i.e. the compiled template class name and information about the Twig environment.
_context references the current context and contains all variables passed to the template such as variables sent from theme(), prepared by preprocess, or set in the template. Adding {{ dump() }} without specifying a variable is equivalent to {{ dump(_context) }}.
_charset references the current charset.

友情提示

如果你想查看所有的变量,但是‘dump’函数因为递归等原因把内存耗尽了,你可以通过以下方式来处理:

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

然后用一个约束条件去检查这些变量,如 { if loop.index = 2 %} 这样就可以找到你所需要的内容啦!

时间: 2024-11-08 23:27:33

【Drupal 8】中调试Twig模板中的变量教程的相关文章

Twig模板引擎用法入门教程_php实例

本文实例讲述了Twig模板引擎用法.分享给大家供大家参考,具体如下: 介绍 Twig是一个灵活.高效并且安全的PHP模板引擎. 如果你使用过Smarty.Django或者Jinja这类基于文本的模板引擎的话,那么你会觉得Twig是很自然而然的事情.Twig严格遵守了PHP的信念,同时增加了在模板环境中很有用的函数,这些做法使得Twig不论是对设计师还是开发人员,都是非常友好的. Twig的主要特征有: 高效:Twig将模板编译成了优化了的PHP文件,与原生的PHP代码比较而言,性能损耗非常小.

《AngularJS实战》——3.1 模板中的过滤器

3.1 模板中的过滤器 过滤器的主要功能是格式化数据,这里所说的数据,既包括视图模板中的表达式,也包括控制器中的数组或对象.开发人员不仅可以方便地调用Angular中提供的过滤器,还可以自定义属于自己的过滤器.接下来,我们通过一些实用的案例,来介绍过滤器的强大功能. 3.1.1 排序方式过滤 在介绍排序(orderBy)过滤器之前,先来了解一下过滤器的使用格式.在Angular中,过滤器有3种调用方式,分别为单个过滤器.多个过滤器和带参数的过滤器,它们分别对应不同的使用格式,下面分别进行介绍.

WPF中如何查找数据模板中的子元素

前两天在写一个WPF程序时,突然发现DataGrid控件没有筛选功能,但我不急,因为我知道,WPF的好处在于UI与逻辑的分离,要给数据网格控件加上输入筛选功能并不复杂,也不用去找第六方控件了,直接从DataGrid类派生一个类,并重定义它的控件模板,在DataGrid原有的控件模板上加一个StackPanel就可以了,方向为水平排列,放在列标头的下方.然后在代码中根据各个列的情况,向那个StackPanel添加N个文本框就可以输入筛选信息了.呵呵,虽不算完美,解决燃眉之急还是可以的. 这样我就想

在开发过程中调试报表插件详细教程

原文:在开发过程中调试报表插件详细教程 背景说明 目前插件开发调试非常麻烦,需要修改代码,编译出class,重新打插件包.然后删除以前的,安装最新的.过程繁杂,而且不能调试,十分不方便.那么我就来教会大家如何可以调试插件.   需要工具:eclipse,finereport报表工具   具体说明 1. 新建工程 新建java工程,在此不赘述     2. 添加依赖,启动设计器   若要能启动设计器需要依赖的jar包很多.具体如下: A. jetty相关的jar包       B. 设计器相关的j

jstl-jxls问题: excel模板中foreach的横向和纵向输出的问题

问题描述 jxls问题: excel模板中foreach的横向和纵向输出的问题 如图: 为什么纵向正常,横向时候index就出问题,而属性都是对的.求解

在PL/SQL 开发中调试存储过程和函数的一般性方法

存储过程|函数 在PL/SQL 开发中调试存储过程和函数的一般性方法摘要: Oracle 在PLSQL中提供的强大特性使得数据库开发人员可以在数据库端完成功能足够复杂的任务, 本文将结合Oracle提供的相关程序包(package)以及一个非常优秀的第三方开发工具来介绍在PLSQL中开发及调试存储过程的方法,当然也适用于函数. 版权声明: 本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息.原文出处: http://www.aiview.com/notes/ora_using_

使ecshop模板中可引用常量的实现方法

比如$smarty.const.'常量',这个就不能用. 其实模板引擎原理上并不复杂,只是把一些模板标签替换为php中的函数,变量,语法结构罢了. 这次要在ecshop模板中加入引用常量的功能,只需在函数make_var()中加入两行代码 复制代码 代码如下: function make_var($val) { if (strrpos($val, '.') === false) { if (isset($this->_var[$val]) && isset($this->_pa

ASP.NET 2.0中实现模板中的数据绑定

asp.net|模板|数据 模板化的数据绑定控件为我们在页面上显示数据提供了根本的灵活性.你可能还记得ASP.NET v1.x中的几个模板化控件(例如DataList和Repeater控件).ASP.NET 2.0仍然支持这些控件,但在模板中绑定数据的语法已经被简化和改善了.本文将讨论在数据绑定控件模板中绑定数据的多种方法. 数据绑定表达式 ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fiel

树形数据显示SQL示例代码(在ms sql 2000 DBMS中调试通过)

示例|数据|显示 树形数据显示SQL示例代码(在ms sql 2000 DBMS中调试通过) SELECT DeptCode1 + DeptCode2 + DeptCode3 AS dpcode,       CASE WHEN deptname2 = '' THEN deptname1 WHEN deptname2 <> '' AND       deptname3 = '' THEN DeptName1 + '\' + DeptName2 WHEN deptname2 <> '