【问题标题】:smarty get data from $globalssmarty 从 $globals 获取数据
【发布时间】:2010-10-15 09:41:51
【问题描述】:

如果使用 {debug} 来查看我可以在页面中访问哪些数据。 现在我需要的东西在 {$GLOBALS} 中,比如

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

但是如何获取需要在页面上显示的数据?喜欢电子邮件地址吗?

【问题讨论】:

    标签: php smarty


    【解决方案1】:

    如果您只能访问模板文件,则可以将 $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}
    

    【讨论】:

      【解决方案2】:

      我想这可能有效:

      {php}

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

      {/php}

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多