ThinkTemplate 控制器中配置缓存模板编号 作者:七棵菜 日期:2022-11-30 栏目:计算机分类:1 人气:287 ThinkTemplate 默认的模板缓存是根据模板文件生成缓存文件,子模板变化和内容变化缓存不会更新,这是一种编译缓存。 但是也支持类似动态内容静态化的缓存,例如每一篇文章生成一个缓存页面,实现这个功能需要在控制器中配置模板编号,并且启用内容缓存,禁用模板缓存,如下: ``` $cache_id = "read/article/$id/" . $chapters[$chapter]['id']; // 文章内容模板缓存编号 Config::set(['cache_id' => $cache_id, 'display_cache' => true, 'tpl_cache' => false], 'view'); // 设置模板缓存 ``` 下面是一个根据书籍和章节编号生成内容缓存的例子 ``` /** * 章节详情 * @param $id 书籍编号 * @param $chapter 章节编号 * @return mixed */ public function view($id, $chapter) { $chapters = DataFacade::getChapters($id); // 章节目录列表 $this->vars['chapter'] = $chapters[$chapter]; // 当前章节 $this->vars['id'] = $id; // 书籍编号 $this->vars['prev'] = $chapter > 0 ? ($chapter - 1) : false; // 是否显示上一章 $this->vars['next'] = !isset($chapters[$chapter]['last']) ? ($chapter + 1) : false; // 是否显示下一章 $this->vars['before'] = isset($chapters[$chapter]['before']) ? $chapters[$chapter]['before'] : false; // 是否显示前一个场景 $this->vars['after'] = isset($chapters[$chapter]['after']) ? $chapters[$chapter]['after'] : false; // 是否显示后一个场景 $this->vars['relationArticles'] = []; // 相关章节 $relations = DataFacade::getRelationChapters($id); if (isset($chapters[$chapter]['relation_name'])) { if (isset($relations[$chapters[$chapter]['relation_name']])) { $this->vars['relationArticles'] = $relations[$chapters[$chapter]['relation_name']]; } } $cache_id = "read/article/$id/" . $chapters[$chapter]['id']; // 文章内容模板缓存编号 $this->vars['content'] = $cache_id; // 文章内容模板 Config::set(['cache_id' => $cache_id, 'display_cache' => true, 'tpl_cache' => false], 'view'); // 设置模板缓存 return $this->fetch(); } ``` 标签: thinkphp thinktemplate 模板缓存 上一篇:如何使用mvn命令导入依赖 下一篇:小丸工具箱——免费的视频编辑、视频批量处理、视频压缩、音频处理本地软件 随便看看 2024-02-19 PHP7 运算符“??” 和“?:”的区别 2022-11-30 Linux 后台运行命令 2022-11-25 关于我们 2022-11-30 centos一键系统安装lnmp集成环境 2022-11-30 linux 生成 ssh 公钥 留言