我不知道为什么会出现这个错误
The function "dump" does not exist in twig file
Run Code Online (Sandbox Code Playgroud)
虽然我已经在config.yml文件中写了:
services:
product_store.twig.extension.debug:
class: Twig_Extension_Debug
tags:
- { name: 'twig.extension' }
Run Code Online (Sandbox Code Playgroud)
在twig文件中我尝试转储:
{{ dump(product) }}
Run Code Online (Sandbox Code Playgroud)
Joh*_*ary 15
lifo的答案鼓励您使用debug标签,但debug标签{% debug product %}在Twig 1.5中已弃用,并替换为该dump功能{{ dump(product) }}.
从Symfony Standard Edition 2.0.9开始的正确扩展是Twig_Extension_Debug应该添加的,app/config/config_dev.yml所以它只在dev环境中加载:
services:
twig.extension.debug:
class: Twig_Extension_Debug
tags: [{ name: 'twig.extension' }]
Run Code Online (Sandbox Code Playgroud)
然后,您应该可以{{ dump(product) }}在模板中使用.
如果问题仍然存在,您可以尝试以下几点:
使用php app/console container:debug twig.extension.debug --env=dev保证了依赖注入容器被正确拿起你的服务定义.
[container] Information for service twig.extension.debug
Service Id twig.extension.debug
Class Twig_Extension_Debug
Tags
- twig.extension ()
Scope container
Public yes
Synthetic no
Required File -
Run Code Online (Sandbox Code Playgroud)打开dev环境的已编译依赖项注入容器类,并搜索Twig_Extension_Debug是否已定义任何其他服务以使用它.这个文件住在app/cache/dev/appDevDebugProjectContainer.php
确保参数%kernel.debug%为true.
确保您使用的是Twig 1.5或更高版本.