我有以下聪明的代码:
{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_vars [somevar]来获取{php}标签内部的智能变量,但这似乎不适合foreach。
我意识到在smarty中使用{php}标签对于整个聪明的概念是违反直觉的,并且完全蹩脚,但我有我的理由。谢谢你的帮助!
答案 0 :(得分:2)
更改$ myfieldid = {$ v.fieldid}
到
$ myfieldid = $ v ['fieldid'];
顺便说一句,你所做的就是邪恶!答案 1 :(得分:1)
虽然这是一个古老的主题,但我设法结合了Bingy的一些建议来解决它。
首先,使用get_template_vars将smarty变量导入php,然后获取数组值。
$v = $this->get_template_vars('v');
$myfieldid = $v['fieldid'];
OR:
$myfieldid = $this->_tpl_vars['v']['fieldid'];
答案 2 :(得分:0)
如果您已经在智能模板中使用PHP,为什么不将foreach实现为PHP循环而不是智能循环?