Php 以字符串形式获取Smarty模板(传递数据)

Php 以字符串形式获取Smarty模板(传递数据),php,smarty,Php,Smarty,我正在使用使用Smarty的遗留代码。对于其中一个Ajax请求,我需要返回子模板的HTML代码。因此,我希望将一个变量传递给子模板,并将处理后的模板存储为string,以便将其传递回Ajax回调 我不知道怎么做。Smartyfetch()似乎做了类似的事情,但我无法将$myData传递到子模板中 我想要的是: $content = $smarty->get_template_as_string('results.tpl', $myData); return $content; Smart

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

我不知道怎么做。Smarty
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在分配数组方面似乎没有问题,因此不需要循环;)