在{php}标签中使用smarty变量

时间:2012-01-11 23:28:36

标签: php variables smarty

非常简单的问题,是否可以在{php} {/ php}标签内使用smarty var。我知道它已被弃用,毫无意义,不推荐等等,但请,我正在寻找一个简单的补丁!

这样的东西
{php} 

 $result = mysql_query("SELECT value FROM table WHERE fieldid = 9 AND relid = {MYSMARTYVAR}");

{/php}

谢谢!

更新:我尝试了以下方法。

1-$var = $this->get_template_vars('smarty_var');
2-$var = $smarty->getTemplateVars('smarty_var');
3-$var = $this->_tpl_vars['smarty_var'];

所有给我的致命错误,$ this不在对象上下文等。 我在WHMCS环境中,如果这解释了为什么某些东西被阻止或禁用?

更新2;找到一个比看起来更简单的解决方案,我觉得很傻:     $ var =“{$ mysmartyvar}”;

谢谢大家!

7 个答案:

答案 0 :(得分:5)

使用$this->get_template_vars('smarty_var')获取Smarty变量。

 $result = mysql_query("SELECT value FROM table WHERE fieldid = '9' AND relid = '" . $this->get_template_vars('smarty_var') . "'");

答案 1 :(得分:2)

 {php}
 $var = $template->get_template_vars('...')
 {/php}

答案 2 :(得分:1)

Answer from the OP. It may be helpful to others.

It is very simple.

$var= "{$mysmartyvar}";

This is working for me.

答案 3 :(得分:0)

是的,所有变量都存储在$this->_tpl_vars中,因此它应如下所示:

{php} 

 $result = mysql_query("SELECT value FROM table WHERE fieldid = 9 AND relid = {$this->_tpl_vars['MYSMARTYVAR']}");

{/php}

答案 4 :(得分:0)

$myValue = $template->getVariable('myVariable')->value;

答案 5 :(得分:0)

这对我有用:

{php}
$variable= $GLOBALS['smarty']->getTemplateVars('variable');
{/php}

答案 6 :(得分:-1)

尝试使用“全球”

{php}
global $smarty_object;
$var = $smarty_object->get_template_vars('whatever');
{/php}