Как обратиться к перменным $smarty из php кода

338
23 декабря 2016, 16:34

Есть вот такая строка

<input type="text" value="{$categoryID}" name="cat">

Можно ли как-то обратиться к переменной $categoryID из php кода?

UP

smarty.php

$smarty->assign( "categoryID", $categoryID);

cat.html

... код и include файла smarty.php
{php}
    $foo = $smarty->get_template_vars('$categoryID');
    print_r($foo);
{/php}
Answer 1

Для получения значений ранее присвоенных переменных шаблона в Smarty 3 используется метод getTemplateVars(). При вызове без параметров возвращает весь массив присвоенных переменных, а при указании в качестве параметра имени переменной, возвращает соответственно ее значение.

<?php
    $smarty->assign('foo', 'bar');
    $foo = $smarty->getTemplateVars('foo');
    $all_tpl_vars = $smarty->getTemplateVars();

Для более ранних версий (Smarty 2.x) используется get_template_vars()

$smarty = new Smarty;
$smarty->assign('foo', 123);
$foo = $smarty->get_template_vars('foo');
print_r($foo);

UPD

Поскольку вопрос был обвнолен, то решение несколько меняется. Выше приведенный код относится не к шаблону, а пхп коду. В случае, доступа к переменной из шаблона внутри тэгов {php} код будет следующий:

{php}
    print_r($this->get_template_vars('foo'))
{/php}

Естественно тут работа идет уже внутри самого смарти, т.к. что обращаться надо к $this.

ну а вообще тэг {php} исключен из Smarty3, т.к. не надо мешать логику и представление, ибо это плохо.

READ ALSO
Просто открыть файл формата .xlsx

Просто открыть файл формата .xlsx

Нужно просто открыть указанный файл форматаxlsx Дальше он будет правиться и закрываться вручную

282
yii2 Url Manager, get параметр

yii2 Url Manager, get параметр

Можно ли с помощью Url-manager, скрыть get параметр? Использую SluggableBehavior Сейчас поисковый запрос выдает вот такой

532
Nginx+Php-Fpm - FastCGI sent in stderr: &ldquo;Primary script unknown&rdquo;

Nginx+Php-Fpm - FastCGI sent in stderr: “Primary script unknown”

Доброе время сутокДобрался до настройки Nginx с FastCGI на Fedora 24, но Nginx пишет

386
PHP Глобальный объект

PHP Глобальный объект

Есть ли такая штука в PHP? А то я пробую статические поля, $_SERVER, $GLOBAL, все приводит к одному и тому же результату, при перезагрузке страницы всё...

328