我们正在使用 smarty,
在我们的一种观点中,我们有:
{if $header.showNav}...{/if}
如果我们想设置我们使用:
$header = $smarty->getTemplateVars('header');
$header['showNav'] = true;
$smarty->assign('header', $header);
哪个有效,但它似乎相当冗长。
smarty 是否提供了一种更容易管理的方法?
为什么不直接推出自己的功能:
function updateSmarty($smarty, $templateVar, $key, $value) {
$templateVars = $smarty->getTemplateVars($templateVar);
$templateVars[$key] = $value;
$smarty->assign($templateVar, $templateVars);
}
然后你可以在你需要的地方写上一行:
updateSmarty($smarty, 'header', 'showNav', true);
甚至:
function showNav($smarty) {
updateSmarty($smarty, 'header', 'showNav', true);
}
然后:
showNav($smarty);