多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 模板渲染 在控制器里面模板渲染,可以使用基类封装好的 fetch 方法; > ThinkCMF5.1 设置的模板文件名分隔符是`/`,模板后缀名为`html` 常见 fetch 调用方法如下: 1.不带任何参数: ``` return $this->fetch(); ``` 系统会按照默认规则自动定位模板文件,其规则是: ``` 当前主题目录/当前应用/当前控制器(小写+下划线)/当前操作(小写)+.html ``` 2.指定渲染当前控制器下的某个模板文件 ``` return $this->fetch('edit'); ``` 模板定位规则是: ``` 当前主题目录/当前应用/当前控制器(小写+下划线)/edit.html ``` 3.指定渲染某个控制器下的某个模板文件 ``` return $this->fetch('UserArticle/list'); ``` 模板定位规则是: ``` 当前主题目录/当前应用/user_article/list.html ``` 4.跨模块渲染模板(非特殊情况下这种方法在 cmf 中不推荐使用) ``` return $this->fetch('portal@UserArticle/list'); ``` 模板定位规则是: ``` 当前主题目录/portal/user_article/list.html ``` 5.从视图根目录开始读取模板 ``` return $this->fetch('/list'); ``` 或 ``` return $this->fetch(':list'); ``` 模板定位规则是: ``` 当前主题目录/当前应用/list.html ``` > 注:以上调用方式,控制器和操作并不要求有实际对应的控制器和操作,它只是目录名称和文件名称而已; 6.渲染实际存在的模板文件 ``` return $this->fetch('./themes/home/index.html'); ``` ## 内容渲染 有时你的模板内容可能存在数据库或者其它地方,需要直接解析内容,而不用通过模板文件,这时就可以使用控制器的 `display` 方法 ``` $content='你的模板内容'; return $this->display($content); ``` > 注:渲染的内容中一样可以使用模板引擎的相关标签。