控制器模板渲染

优质
小牛编辑
131浏览
2023-12-01

模板渲染

在控制器里面模板渲染,可以使用基类封装好的 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);

注:渲染的内容中一样可以使用模板引擎的相关标签。