当整个页面被缓存,但只有小部分区域需要根据不同的条件设置不同的信息。(例如商品的详细页面的缓存中用户名是动态的)这里就需要设置动态缓存。
首先在被缓存的模板中使用renderDynamic进行动态渲染。使用如下
<?php echo $this->renderDynamic('show_name');//动态渲染,参数为控制器中的普通方法?>
控制器中定义这个方法(因为大部分控制器都需要用到这个方法,所以最好将这个方法放到控制器的父类中即Contrallor中)
/*
* 动态缓存的回调函数,因此不需要关键字action
*/
public function show_name(){
return Yii::app()->user->name;
}