2012-04-12 10 views
9

agrego para la plantilla (index.html.twig) simplemente:¿Cómo usar el volcado en TWIG?

{{ dump(product) }} 

y tengo error:

The function "dump" does not exist in AcmeStoreBundle:Default:index.html.twig at line 2 

¿Por qué esta función no se active, y cómo puedo permitir esto?

+1

posibles duplicados de [ ¿Cómo var_dump variables en plantillas twig?] (Http://stackoverflow.com/questions/7317438/how-to-var-dump-variables-in-twig-templates) – meze

Respuesta

15

Usted necesita to configure la extensión de depuración:

# app/config/config.yml 
services: 
    acme_hello.twig.extension.debug: 
     class:  Twig_Extension_Debug 
     tags: 
      - { name: 'twig.extension' } 

por el enlace mencionado anteriormente, la ramita de depuración se puso a trabajar de manera predeterminada en Symfony 2.5 + funcionamiento de la ramita 1.16+, y la definición de servicio personalizado no es necesario. See this answer for more details.

+0

No sé si estas son respuestas antiguas o simplemente incompleto, pero esto definitivamente NO funciona para mí. He intentado muchas versiones diferentes de esta respuesta, fue en vano. –

+0

@ChadwickMeyer hay un enlace que dice que todo lo que necesita es habilitarlo en la configuración 'twig: debug: true' – meze

+0

Gracias. Lo había hecho y no funcionó. Pero también actualicé desde Symfony 2.4 a 2.5 y ejecuté 'Composer update' (que se actualizó de Twig 1.15 a 1.16 y ahora está funcionando. Entonces, quién sabe ... –

2

Symfony 2.7+ UPDATE:

El DebugBundle permite una mayor integración de la componente en el completo framework Symfony. Está habilitado por defecto en el entorno de desarrollo y prueba de Symfony Standard Edition.

Compruebe el VarDumper component y su integration on Twig.

vieja respuesta:

me gustaría sugerir una solución no nativo. Necesitará un paquete de terceros, ¡pero el resultado final será excelente!

Mejoras en la versión dump:

  1. se labran todos los vertederos
  2. que puede proporcionar el nivel de anidamiento máximo para evitar problemas de memoria con grandes objetos
  3. Ayudantes muy útiles, como ldd(), que es un alias para el clásico "volcar y morir"
  4. tiene un descargador de consola (ej.php app/console ladybug:dump "Symfony\Component\HttpFoundation\Request")
  5. que proporciona una integración con el Symfony Profiler
  6. que detecta automáticamente las clases de Symfony, la doctrina, la ramita y Silex, y los vincula a la documentación oficial

Aquí los enlaces:

+0

no funciona en Symfony 3 – mehmetsen80

+0

en Symfony 2.7+ probablemente estés mejor con el componente oficial 'VarDumper': http://symfony.com/doc/current/components/var_dumper.html#debugbundle-and-twig-integration –

2

cuando se configura como @meze Dicho esto, puede mostrar todas las variables personalizadas:

<h1>Variables passed to the view:</h1> 
{% for key, value in _context %} 
    {% if key starts with '_' %} 
    {% else %} 
     <pre style="background: #eee">{{ key }}</pre> 
     {{ dump(value) }} 
    {% endif %} 
{% endfor %} 

Puede usar mi simple plugin para inspeccionar su conveniente variables:

Twig Dump Bar