我想遍历单个数组并仅对某些元素禁用缓存。所以我的想法是在 nocache 部分保留key
和获取元素。key
不幸的是,我没有发现任何可能性:
分配缓存$rec@key
在 nocache 部分,
或将变量key
定义保留在缓存部分中。
有什么办法(无需修改聪明的代码)吗?这是我的test.tpl:
{foreach $array as $rec}
{if $rec.dynamic}
{assign var="key" value=$rec@key}
{nocache}
{$array[$key].text}
{/nocache}
{else}
{$rec.text}
{/if}
{/foreach}
和 test.php:
<?php
include_once 'libs/Smarty.class.php';
$smarty=new smarty();
$smarty->caching=1;
$smarty->assign('array',array(
'r1'=>array('dynamic'=>true,'text'=>'dynamic'),
'r2'=>array('dynamic'=>false,'text'=>'static')
));
$smarty->display('test.tpl');
(当然我会将它用于比文本显示更复杂的事情:))我尝试了很多技巧,我自己认为这是不可能的,请告诉我我错了:)