在这种情况下,如何使用缓存

时间:2013-11-11 18:18:04

标签: caching smarty

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未定义

在这种情况下如何处理

1 个答案:

答案 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的关闭之后进行获取。