0
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")
我需要 $tags 和 $categories for 'sidebar.tpl'

$smarty->fetch("sidebar.tpl", $sidebarData);
$sidebarData 未定义

在这种情况下如何处理

4

1 回答 1

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');
?>

因此,在您的情况下,您应该将 fetch 放在 iscached if 的结束 } 之后。

于 2013-11-12T15:16:29.153 回答