Ответ 1
Вы можете использовать теги {php}
Метод 1 (не будет работать в Smarty 3.1 или более поздней версии):
{php}
$var =
$this->get_template_vars('var');
var_dump($var);
{/php}
Метод 2:
{$var|@print_r}
Метод 3:
{$var|@var_dump}
У меня есть некоторые переменные внутри шаблона, и я не знаю, где я их назначил. Мне нужно знать, что находится внутри конкретной переменной; например, у меня есть переменная в smarty, называемая member
. Я пытался с {debug}
, но это не сработало, и всплывающее окно не было показано.
Как я могу выводить/отлаживать переменные smarty с помощью чего-то типа var_dump()
внутри шаблонов?
Вы можете использовать теги {php}
Метод 1 (не будет работать в Smarty 3.1 или более поздней версии):
{php}
$var =
$this->get_template_vars('var');
var_dump($var);
{/php}
Метод 2:
{$var|@print_r}
Метод 3:
{$var|@var_dump}
Это должно работать:
{$var|@print_r}
или
{$var|@var_dump}
@необходим для массивов, чтобы smarty запускал модификатор против всего, иначе он делает это для каждого элемента.
Для чего вы можете сделать {$varname|@debug_print_var}
, чтобы получить var_dump()
-еский вывод для вашей переменной.
просто используйте {debug} в вашем .tpl и посмотрите на исходный код
В новом Smarty это:
<pre>
{var_dump($variable)}
</pre>
Попробуйте сеанс Smarty:
{$smarty.session|@debug_print_var}
или
{$smarty.session|@print_r}
Чтобы украсить ваш вывод, используйте его между тегами <pre> </pre>
Если вы хотите что-то красивое, я бы посоветовал
{"<?php\n\$data =\n"|@cat:{$yourvariable|@var_export:true|@cat:";\n?>"}|@highlight_string:true}
просто замените yourvariable на свою переменную
попробуйте это.... Установите $debugging
в TRUE в Smarty.
Отладка в smarty в prestashop 1.6.x:
{ddd($variable)} -> debug and die
{ppp($variable)} -> debug only
В качестве полезного отладочного тега:
{debug}
в Smarty V3 вы можете использовать этот
{var_dump($variable)}
В smarty есть встроенный модификатор, который вы можете использовать, используя |
(оператор с одним конвейером). Подобно этому {$varname|@print_r}
будет печатать значение как print_r($php_variable)