Как отлаживать переменные в Smarty как в PHP var_dump () - PullRequest
149 голосов
/ 12 марта 2010

У меня есть некоторые переменные внутри шаблона, и я не знаю, где я их назначил. Мне нужно знать, что находится внутри конкретной переменной; например, скажем, у меня в smarty есть переменная с именем member. Я пробовал с {debug}, но это не сработало, и всплывающее окно не отображалось.

Как вывести / отладить переменные smarty, используя что-то вроде var_dump() внутри шаблонов?

Ответы [ 11 ]

302 голосов
/ 12 марта 2010

Вы можете использовать теги {php}

Метод 1 (не будет работать в Smarty 3.1 или более поздней версии):

{php}

$var =
$this->get_template_vars('var');
var_dump($var);

{/php}

Метод 2:

{$var|@print_r}

Метод 3:

{$var|@var_dump}

Дайте мне знать, если это поможет.

114 голосов
/ 12 марта 2010

Это должно работать:

{$var|@print_r}

или

{$var|@var_dump}

Символ @ необходим для массивов, чтобы заставить smarty запустить модификатор против всего, в противном случае он делает это для каждого элемента.

23 голосов
/ 09 сентября 2011

Что бы это ни стоило, вы можете сделать {$varname|@debug_print_var}, чтобы получить var_dump() -экскрипт для вашей переменной.

9 голосов
/ 28 апреля 2011

просто используйте {debug} в вашем .tpl и посмотрите на ваш исходный код

6 голосов
/ 06 марта 2017

В новом Smarty это:

<code><pre>
{var_dump($variable)}
4 голосов
/ 13 января 2015

Попробуйте с Smarty Session:

{$smarty.session|@debug_print_var}

или

{$smarty.session|@print_r}

Чтобы украсить вывод, используйте его между тегами

2 голосов
/ 13 ноября 2017

Если вы хотите что-то красивее, я бы посоветовал

{"<?php\n\$data =\n"|@cat:{$yourvariable|@var_export:true|@cat:";\n?>"}|@highlight_string:true}

просто замените вашу переменную на вашу переменную

1 голос
/ 26 июня 2017

Отладить в smarty в prestashop 1.6.x:

{ddd($variable)} -> debug and die

{ppp($variable)} -> debug only

Другой полезный тег отладки:

{debug}
1 голос
/ 12 марта 2010

попробуйте это ... Установите $debugging на ИСТИНА в Smarty.

0 голосов
/ 15 февраля 2018

в Smarty V3 вы можете использовать это

{var_dump($variable)}

...