Smarty - 调用函数并呈现响应

时间:2015-11-24 11:08:30

标签: templates smarty

在当前的网站上,我试图执行一个来自变量的函数。

我目前的代码段:

<textarea rows="10" name="{$field.name}" class="form-control">{$field.placeholder}</textarea>

那么,占位符变量内部是什么?

{$plugin->getMessage()}

我textarea的内容目前正在使用此设置:

{$plugin->getMessage()}

但目标是,smarty执行该函数并使用从函数返回的CONTENT。所以我试图使用一些过滤器。

  • 首先我使用了"ldelim""rdelim"

    {ldelim}{$field.placeholder}{rdelim}
    

我的浏览器中的响应是(textarea中的值):

{{$plugin->getMessage()}}
  • 我也尝试使用"literal"

    {literal}{$field.placeholder}{/literal}
    

我的浏览器中的响应(textarea中的值):

{$field.placeholder}

但是我应该使用什么来获得我的函数"$plugin->getMessage()"的响应?

编辑: 对于同样存在问题的其他人:使用{eval var=$foo}

http://www.smarty.net/docs/en/language.function.eval.tpl

1 个答案:

答案 0 :(得分:1)

我认为你可能会对聪明的工作方式感到困惑。似乎你只是将一个字符串“{$ plugin-&gt; getMessage()}”分配给变量$ field.placeholder,并期望,不知何故,smarty将评估它。但它没有,所以这就是它显示字符串的原因。

要使其工作,您应该在php脚本中将该函数的结果分配给变量