Как отлаживать переменные в Smarty, как в PHP var dump()



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



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

728   11  

11 ответов:

вы можете использовать теги {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() - выход esque для вашей переменной.

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

в new 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 к истине в Smarty.

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

{var_dump($variable)}

в smarty есть встроенный модификатор, который вы можете использовать, используя | (один оператор конвейера). Вот так {$varname|@print_r} выведет значение как print_r($php_variable)

для отладки в smarty в prestashop 1.6.x:

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

{ppp($variable)} -> debug only

еще один полезный тег отладки:

{debug}

Comments

    Ничего не найдено.