smarty从$ globals获取数据

时间:2010-10-15 09:41:52

标签: php smarty

如果使用{debug}查看我可以在页面中访问哪些数据。 现在我需要的东西就像{$ GLOBALS}一样坐在

   current_user => Array (17)
      id => 3759
      user_name => bla
      email => bla@bla.com
      group => Array (2)
        id => users
        caption => Users

但是如何获取我需要在我的页面上显示的数据?像电子邮件地址一样?

2 个答案:

答案 0 :(得分:2)

如果您只访问模板文件,则可以将$GLOBALS分配给smarty var $globals,如下所示:

{php}$this->assign('globals', $GLOBALS);{/php}
{$globals.somevar}

$this指的是活跃的Smarty对象。

当有权访问PHP脚本时,实现此目的的更好方法是:

<?php
$somevar = 'this is a test';
$tpl = new Smarty;
$tpl->assign('globals', $GLOBALS);
$tpl->display('example.tpl');
?>

模板文件:

{$globals.somevar}

可选择使用以下过滤器:

{$globals.somevar|escape:html}

答案 1 :(得分:0)

我想这可行:

{PHP}

echo $ GLOBALS ['current_user'] ['email'];

{/ PHP}

(这不是最好的方法。您需要确保在输出之前转义数据,因此您可以使用htmlentities()或更好的方式在代码中分配数据,请参阅:http://www.smarty.net/manual/en/api.assign.php