php - Smarty 可以只读取一个 block 而不是模板吗?

标签 php templates smarty smarty3

一开始我对 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/

相关文章:

javascript - 使用 Javascript (AJAX) 向 Symfony2 中的路由发送请求

php - 如何从数组中随机选择项目?

PHP - try/catch 的开销是否高于 if/then?

c++ - 声明和定义不匹配

c++ - 实现一个也验证 'the singleton constructor is private' 的单例包装类

javascript - 向 PHP 脚本提交 PDF 表单仅适用于 Adob​​e Reader XI

templates - 用数据库的设计替换 Lotus Notes 模板的设计(或使数据库成为模板)

php - 使用 Smarty 无法使用 setTimeout 隐藏错误消息 div

php - 如何循环遍历 N 级子子数组 - PHP

vim - smarty 自动缩进 html