模板渲染
在控制器里面模板渲染,可以使用基类封装好的 fetch 方法;
ThinkCMF5 设置的模板文件名分隔符是/
,模板后缀名为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);
注:渲染的内容中一样可以使用模板引擎的相关标签。