一开始我对 Smarty 真的很陌生。
我有一些模板文件有时需要先解析。
所以想知道 Smarty 是否可以只解析一个特殊 block 而不是包含许多 block 的整个文件会很有趣。
有一个名为 fetch ()
的函数,但它并没有像我希望的那样工作。
如果可以做类似的事情就好了
Smarty()->fetch($myTpl, array('blockname1'));
最佳答案
据我所知你不能这样做,但你可以有多个 Smarty 文件。那么你可以做什么:
一个 Smarty 文件(例如 index.tpl
):
bla bla bla
{$content}
bla bla bla
另一个 Smarty 文件(例如 site.tpl
)
another bla bla bla
在 PHP 中,您现在可以:
$site = $smarty->fetch('site.tpl');
$smarty->assign('content', $site . ' xxx'); // you modify in PHP content a bit
$smarty->display('index.tpl');
输出将是:
bla bla bla
another bla bla bla xxx
bla bla bla
因此,正如您所见,您需要将要单独解析的 block 放入另一个文件中,然后获取它,然后您可以将其内容分配给另一个 Smarty 文件(或者用它做任何您想做的事情 - 保存到文件等等) ).
关于php - Smarty 可以只读取一个 block 而不是模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25943700/