Php 以字符串形式获取Smarty模板(传递数据)
我正在使用使用Smarty的遗留代码。对于其中一个Ajax请求,我需要返回子模板的HTML代码。因此,我希望将一个变量传递给子模板,并将处理后的模板存储为string,以便将其传递回Ajax回调 我不知道怎么做。SmartyPhp 以字符串形式获取Smarty模板(传递数据),php,smarty,Php,Smarty,我正在使用使用Smarty的遗留代码。对于其中一个Ajax请求,我需要返回子模板的HTML代码。因此,我希望将一个变量传递给子模板,并将处理后的模板存储为string,以便将其传递回Ajax回调 我不知道怎么做。Smartyfetch()似乎做了类似的事情,但我无法将$myData传递到子模板中 我想要的是: $content = $smarty->get_template_as_string('results.tpl', $myData); return $content; Smart
fetch()
似乎做了类似的事情,但我无法将$myData
传递到子模板中
我想要的是:
$content = $smarty->get_template_as_string('results.tpl', $myData);
return $content;
Smarty中不存在
get\u template\u as\u string()
方法,只是作为我需要的示例。Smarty不将其数据作为数组,您需要单独分配每个变量;幸运的是,您只需执行一个简单的foreach
循环:
foreach ($variables as $key => $value) {
$this->assign($key, $value);
}
然后,正如您所说,fetch
将为您呈现实际的模板:
$html = $this->fetch($template_file_name);
显然,您可以用任何对您有意义的实用函数来概括所有这些。谢谢!在调用
fetch()
之前分配数据成功了。顺便说一句,Smarty在分配数组方面似乎没有问题,因此不需要循环;)