发布网友 发布时间:2022-04-20 09:49
共3个回答
懂视网 时间:2022-04-28 08:27
下面由thinkphp框架教程栏目给大家介绍TP5在控制器中view和fetch两种方法的区别,希望对需要的朋友有所帮助!
TP5 在控制器中view和fetch两种方法的区别
在controller里面,两种方法异同
控制器中,模板三种渲染方法,配置显示不一样。
//不继承controller $view = new view(); return $view->fetch('index/demo');
//不继承controller return view('index/demo');
//继承controller return $this->fetch('index/demo');
后两种能输出公共配置的,tpl_replace_string,比如__CSS__,模板里能输出路径,第一种,模板里直接输出__CSS__字符串
项目中,尽量用 后两种
写法,或者继承controller,this->fetch
或者用view方法
new view();
但是这种不能读公共配置文件,需要自己设置参数,实例化对象之后,传参进去,比如这么写
热心网友 时间:2022-04-28 05:35
模板文件的调用方法和display方法完全一样,区别就在于fetch方法渲染后不是直接输出,而是返回渲染后的内容,例如:
$content = $this->fetch('Member:edit');就是拿到Member 下edit的模板进行渲染。好比公共的模板一样的,多次地方调用可以采用fetch方法
望采纳 Thx
热心网友 时间:2022-04-28 06:53
有些时候我们不想直接输出模板内容,而是希望对内容再进行一些处理后输出,
就可以使用fetch方法来获取解析后的模板内容,在Action类里面使用:
$content = $this->fetch();
fetch的参数用法和Display方法基本一致,也可以使用:
$content = $this->fetch('Member:read');
区别就在于display方法直接输出模板文件渲染后的内容,而fetch方法是返回模板文件渲染后的内容。
如何对返回的结果content进行处理,完全由开发人员自行决定了。
这是模板替换的另外一种高级方式,比较灵活,而且不需要通过配置的方式。
注意,fetch方法仍然会执行上面的模板替换操作。