2012-04-12 19 views
9

dodać do szablonu (index.html.twig) po prostu:Jak używać zrzutów w TWIG?

{{ dump(product) }} 

i mam błąd:

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

Dlaczego funkcja ta nie jest włączyć i jak mogę włączyć tego?

+1

możliwe duplikat [ Jak zmienne var_dump w szablonach twig?] (Http://stackoverflow.com/questions/7317438/how-to-var-dump-variables-in-twig-templates) – meze

Odpowiedz

15

Trzeba to configure rozszerzenie debugowania:

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

Per link wspomniano powyżej, Gałązka debugowanie jest ustawiony do pracy domyślnie w Symfony 2.5+ działa Twig 1.16+, a definicja zwyczaj usługa nie jest konieczne. See this answer for more details.

+0

Nie wiem, czy to są stare odpowiedzi czy po prostu niekompletne, ale to zdecydowanie NIE działa dla mnie. Próbowałem wielu różnych wersji tej odpowiedzi, bezskutecznie. –

+0

@ChadwickMeyer istnieje link, który mówi wszystko, czego potrzebujesz, aby włączyć go w config 'twig: debug: true' – meze

+0

Dzięki. Zrobiłem to i nie zadziałało. Ale uaktualniłem także wersję z Symfony 2.4 do wersji 2.5 i uruchomiłem aktualizację "composer" (która została uaktualniona z Twig 1.15 do wersji 1.16 i teraz działa, więc kto wie ... –

2

symfony 2.7+ UPDATE:

DebugBundle umożliwia większą integrację elementu do Symfony ramach pełnej stosu. Jest on domyślnie włączony w środowisku programistycznym i testowym Symfony Standard Edition.

Sprawdź kod VarDumper component i jego .

OLD ODPOWIEDŹ:

chciałbym zaproponować non-native rozwiązanie. Będziesz potrzebował pakietu innej firmy, ale ostateczny wynik będzie świetny!

Ulepszenia w wersji dump:

  1. wszystkie wysypiska są urządzone
  2. można zapewnić maksymalny poziom zagnieżdżenia, aby uniknąć problemów z pamięcią z dużych obiektów
  3. bardzo użyteczni pomocnicy jak ldd(), który jest aliasem dla klasycznego "dump and die"
  4. ma zwalniacz konsoli (np.php app/console ladybug:dump "Symfony\Component\HttpFoundation\Request")
  5. zapewnia integrację z Symfony Profiler
  6. automatycznie wykrywa klas Symfony doktryna, gałązka i Silex, a łączy je do oficjalnej dokumentacji

tu linki:

+0

nie działa w Symfony 3 – mehmetsen80

+0

na Symfony 2.7+ prawdopodobnie lepiej radzisz sobie z oficjalnym komponentem "VarDumper": http://symfony.com/doc/current/components/var_dumper.html#debugbundle-andtwtwintegracja –

2

Po skonfigurowaniu go jak @meze powiedział, można wyświetlić wszystkie zmienne niestandardowe:

<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 %} 

Można używać prosty plugin do dogodne skontrolować swoje zmienne:

Twig Dump Bar