if(!$smarty->isCached("sidebar.tpl")){
$tags = $tagService->tagList();
$categories = $categoryService->categoryList();
$sidebarData = $smarty->createData();
$sidebarData->assign("tags", $tags);
$sidebarData->assign("categories", $categories);
$smarty->setCacheLifetime(3600*24);
$sidebarHtml = $smarty->fetch("sidebar.tpl", $sidebarData);
}
我想将$ sidebarHtml分配给另一个模板,看起来它不起作用,我可以获得$ sidebarHtml,通过:
$smarty->fetch("sidebar.tpl")
我需要'sidebar.tpl'的$ tags和$ categories
或
$smarty->fetch("sidebar.tpl", $sidebarData);
$ sidebarData未定义
在这种情况下如何处理
答案 0 :(得分:0)
此页面: http://www.smarty.net/docs/en/api.is.cached.tpl
Shows this example:
<?php
$smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);
if(!$smarty->isCached('index.tpl')) {
// do database calls, assign vars here
}
$smarty->display('index.tpl');
?>
所以在你的情况下,你应该在iscached的if的关闭之后进行获取。