获取Smarty模板(传递数据)为字符串

时间:2015-11-02 09:53:24

标签: php smarty

我正在处理使用Smarty的遗留代码。对于其中一个Ajax请求,我需要返回子模板的HTML代码。因此,我想将一个变量传递给子模板并将处理后的模板存储为字符串,因此可以将其传递回Ajax回调。

我不知道该怎么做。 Smarty fetch()似乎做了类似的事情,但我无法将$myData传递给子模板。

我想要的是:

$content = $smarty->get_template_as_string('results.tpl', $myData);
return $content;

Smarty中不存在get_template_as_string()方法,只是作为我需要的一个例子。

1 个答案:

答案 0 :(得分:0)

Smarty不将其数据作为数组,您需要单独分配每个变量;幸运的是,你需要做的就是一个简单的foreach循环:

    foreach ($variables as $key => $value) {
        $this->assign($key, $value);
    }

然后,正如您所说,fetch将为您呈现实际模板:

    $html = $this->fetch($template_file_name);

显然,你可以将所有这些包含在任何对你有意义的效用函数中。