代码之家  ›  专栏  ›  技术社区  ›  Banjer

在php标记中使用smarty foreach变量

  •  2
  • Banjer  · 技术社区  · 14 年前

      {foreach from=$additional_fields item=v}
        {if $v.fieldid eq 5}
           {php}
             // several pounds of php code here
             $myfieldid = {$v.fieldid}; // this is wrong
           {/php}
        {/if}
      {/foreach}
    

    我试图用我的定制php代码获取当前字段id,换句话说{$v.fieldid}。我发现一些帖子引用了$this->_tpl\u vars[somevar]在{php}标记内获取smarty变量,但这似乎对foreach不起作用。

    3 回复  |  直到 14 年前
        1
  •  2
  •   Bingy    14 年前

    更改$myfieldid={$v.fieldid}

    $myfieldid=$v['fieldid'];

    顺便说一句,你所做的是邪恶的!

        2
  •  1
  •   FTx    12 年前

    首先使用get\u template\u vars将smarty变量放入php,然后获取数组值。

    $v = $this->get_template_vars('v'); 
    $myfieldid = $v['fieldid'];
    

    或:

    $myfieldid = $this->_tpl_vars['v']['fieldid'];
    
        3
  •  0
  •   m1tk4    14 年前

    如果您已经在smarty模板中使用PHP,为什么不将foreach实现为PHP循环而不是smarty循环呢?