Smarty - 调用函数并呈现响应
Smarty - call a function and render the response
在当前网站上,我正在尝试执行一个来自变量的函数。
我当前的代码片段:
<textarea rows="10" name="{$field.name}" class="form-control">{$field.placeholder}</textarea>
那么,占位符变量里面是什么?
{$plugin->getMessage()}
我的文本区域中的内容当前使用此设置:
{$plugin->getMessage()}
但目标是,smarty 执行函数并使用函数中的 returns 内容。所以我尝试使用一些过滤器。
首先我使用了"ldelim"
和"rdelim"
{ldelim}{$field.placeholder}{rdelim}
我的浏览器中的响应是(文本区域内的值):
{{$plugin->getMessage()}}
我也试过使用"literal"
{literal}{$field.placeholder}{/literal}
我浏览器中的响应(文本区域内的值):
{$field.placeholder}
但是我应该使用什么来获得函数的响应 "$plugin->getMessage()"
?
编辑:
对于也有同样问题的其他人:使用 {eval var=$foo}
我认为您可能对 smarty 的工作原理感到困惑。似乎您只是将字符串“{$plugin->getMessage()}”分配给变量 $field.placeholder,并期望 smarty 以某种方式评估它。但它没有,所以这就是它显示字符串的原因。
要使其正常工作,您应该在 php 脚本中将该函数的结果分配给一个变量
在当前网站上,我正在尝试执行一个来自变量的函数。
我当前的代码片段:
<textarea rows="10" name="{$field.name}" class="form-control">{$field.placeholder}</textarea>
那么,占位符变量里面是什么?
{$plugin->getMessage()}
我的文本区域中的内容当前使用此设置:
{$plugin->getMessage()}
但目标是,smarty 执行函数并使用函数中的 returns 内容。所以我尝试使用一些过滤器。
首先我使用了
"ldelim"
和"rdelim"
{ldelim}{$field.placeholder}{rdelim}
我的浏览器中的响应是(文本区域内的值):
{{$plugin->getMessage()}}
我也试过使用
"literal"
{literal}{$field.placeholder}{/literal}
我浏览器中的响应(文本区域内的值):
{$field.placeholder}
但是我应该使用什么来获得函数的响应 "$plugin->getMessage()"
?
编辑:
对于也有同样问题的其他人:使用 {eval var=$foo}
我认为您可能对 smarty 的工作原理感到困惑。似乎您只是将字符串“{$plugin->getMessage()}”分配给变量 $field.placeholder,并期望 smarty 以某种方式评估它。但它没有,所以这就是它显示字符串的原因。
要使其正常工作,您应该在 php 脚本中将该函数的结果分配给一个变量