ThinkPHP5 模板渲染
来源:互联网 发布:xampp怎么切换php版本 编辑:程序博客网 时间:2024/05/16 17:14
全局模板变量
从 5.0.4+版本开始,支持全局的模板变量赋值操作,可以在任何地方进行模板变量赋值,
而不仅仅只能在控制器方法中赋值,下面举个例子,我们在应用的公共文件中添加下面代码:
// 赋值全局公共的模板变量
\think\View::share('base','全局模板变量');
\think\View::share(['var1'=>'value1','var2'=>'value2']);
控制器代码如下:
<?php
namespace app\index\controller;
class Index
{
public function index()
{
// 使用助手函数批量赋值模板变量
return view('', ['name' => 'thinkphp', 'email' => 'thinkphp@qq.com']);
}
}
最终模板渲染输出的时候,全局模板变量会合并到视图动态赋值的模板变量中一起渲染输出。
我们把模板文件修改下看下效果:
{$base}:{$var1}|{$var2} 名称:{$name} 邮箱:{$email}
访问后输出结果为:
全局模板变量:value1|value2名称:thinkphp 邮箱:thinkphp@qq.com
全局模板变量赋值比较适合在扩展中对模板进行赋值,关于更多的如何使用模板标签和输出变
量请参考官方的完全开发手册中的模板部分。
输出替换
模板输出替换的作用是完成模板渲染输出内容中的特殊字符串的替换操作,比如定义一些特殊的路径。
输出替换可以在应用配置或者模块配置文件中设置view_replace_str参数,例如:
// 视图输出字符串内容替换
'view_replace_str' => [
'__ROOT__' => request()->root() ,
'__STATIC__' => request()->root() . '/static',
'__CSS__' => request()->root() . '/static/css',
'__JS__' => request()->root() . '/static/js', ],
V5.0.4+版本开始,ThinkPHP已经内置支持了上述的几个标签,无需重新定义,如果自定义就是覆盖默认规则。
很多开发者吐槽配置 view_replace_str参数无效,一般是因为自己手动实例化的时候没有获取该配置值传入,
继承系统的控制器基类或者使用 view助手函数都会自动传入该配置参数。
模板渲染
模板渲染输出根据实例化视图方式的不同,也有不同的方式,请根据你的情况选择下面不同的模板渲染方式,
不过无论采用什么方式,模板渲染的规则是一致的。
如果你继承了系统的 think\Controller的话,直接调用控制器的 fetch方法进行渲染,如果你手动实例化视
图类的话,就调用视图类的 fetch方法,用法如下。
fetch('模板文件','模板变量(数组)','替换规则(数组)')
模板文件(可选)的规则支持下面几种:
用法 描述
留空 自动定位当前操作的模板文件
/操作 从视图根目录开始读取模板文件
[模块@][控制器/][操作] 常用写法,支持跨模块
完整的模板文件名 直接使用完整的模板文件名(包括模板后缀)
模板变量(可选)直接传入你的模板变量数组即可,如果已经通过 assign方法赋值了,这里并不需要。
模板替换(可选)直接传入你的模板替换数组即可,效果和模板替换配置一样。
下面是一个实际的例子:
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
// 渲染模板输出
return $this->fetch(
'index/hello',
[
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]
);
}
}
如果使用 view助手函数的话,用法如下:
view('模板文件','模板变量(数组)','替换规则(数组)')
或者使用
view('模板文件')->assign('模板变量(数组)')->replace('替换规则(数组)')
助手函数的模板渲染参数和fetch方法是一致的。
使用 view助手函数的话还可以使用assign(模板变量赋值)和replace方法(输出内容替换):
<?php
namespace app\index\controller;
class Index
{
public function index()
{
// 使用助手函数批量赋值模板变量
return view()->assign([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
])->replace([
'__ROOT__' => request()->root(),
'__STATIC__' => request()->root() . '/static',
'__CSS__' => request()->root() . '/static/css',
'__JS__' => request()->root() . '/static/js',
]);
}
}
从 5.0.4+版本开始,支持全局的模板变量赋值操作,可以在任何地方进行模板变量赋值,
而不仅仅只能在控制器方法中赋值,下面举个例子,我们在应用的公共文件中添加下面代码:
// 赋值全局公共的模板变量
\think\View::share('base','全局模板变量');
\think\View::share(['var1'=>'value1','var2'=>'value2']);
控制器代码如下:
<?php
namespace app\index\controller;
class Index
{
public function index()
{
// 使用助手函数批量赋值模板变量
return view('', ['name' => 'thinkphp', 'email' => 'thinkphp@qq.com']);
}
}
最终模板渲染输出的时候,全局模板变量会合并到视图动态赋值的模板变量中一起渲染输出。
我们把模板文件修改下看下效果:
{$base}:{$var1}|{$var2} 名称:{$name} 邮箱:{$email}
访问后输出结果为:
全局模板变量:value1|value2名称:thinkphp 邮箱:thinkphp@qq.com
全局模板变量赋值比较适合在扩展中对模板进行赋值,关于更多的如何使用模板标签和输出变
量请参考官方的完全开发手册中的模板部分。
输出替换
模板输出替换的作用是完成模板渲染输出内容中的特殊字符串的替换操作,比如定义一些特殊的路径。
输出替换可以在应用配置或者模块配置文件中设置view_replace_str参数,例如:
// 视图输出字符串内容替换
'view_replace_str' => [
'__ROOT__' => request()->root() ,
'__STATIC__' => request()->root() . '/static',
'__CSS__' => request()->root() . '/static/css',
'__JS__' => request()->root() . '/static/js', ],
V5.0.4+版本开始,ThinkPHP已经内置支持了上述的几个标签,无需重新定义,如果自定义就是覆盖默认规则。
很多开发者吐槽配置 view_replace_str参数无效,一般是因为自己手动实例化的时候没有获取该配置值传入,
继承系统的控制器基类或者使用 view助手函数都会自动传入该配置参数。
模板渲染
模板渲染输出根据实例化视图方式的不同,也有不同的方式,请根据你的情况选择下面不同的模板渲染方式,
不过无论采用什么方式,模板渲染的规则是一致的。
如果你继承了系统的 think\Controller的话,直接调用控制器的 fetch方法进行渲染,如果你手动实例化视
图类的话,就调用视图类的 fetch方法,用法如下。
fetch('模板文件','模板变量(数组)','替换规则(数组)')
模板文件(可选)的规则支持下面几种:
用法 描述
留空 自动定位当前操作的模板文件
/操作 从视图根目录开始读取模板文件
[模块@][控制器/][操作] 常用写法,支持跨模块
完整的模板文件名 直接使用完整的模板文件名(包括模板后缀)
模板变量(可选)直接传入你的模板变量数组即可,如果已经通过 assign方法赋值了,这里并不需要。
模板替换(可选)直接传入你的模板替换数组即可,效果和模板替换配置一样。
下面是一个实际的例子:
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
// 渲染模板输出
return $this->fetch(
'index/hello',
[
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]
);
}
}
如果使用 view助手函数的话,用法如下:
view('模板文件','模板变量(数组)','替换规则(数组)')
或者使用
view('模板文件')->assign('模板变量(数组)')->replace('替换规则(数组)')
助手函数的模板渲染参数和fetch方法是一致的。
使用 view助手函数的话还可以使用assign(模板变量赋值)和replace方法(输出内容替换):
<?php
namespace app\index\controller;
class Index
{
public function index()
{
// 使用助手函数批量赋值模板变量
return view()->assign([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
])->replace([
'__ROOT__' => request()->root(),
'__STATIC__' => request()->root() . '/static',
'__CSS__' => request()->root() . '/static/css',
'__JS__' => request()->root() . '/static/js',
]);
}
}
阅读全文
0 0
- ThinkPHP5 模板渲染
- ThinkPHP5 模板渲染
- ThinkPHP5 模板渲染
- ThinkPHP5 模板渲染
- thinkPHP5-渲染模板的方式
- thinkphp5 使用__PUBLIC__等进行模板渲染输出
- Thinkphp5模板引入
- ThinkPHP5模板分离
- thinkPHP5模板布局
- 渲染模板
- 模板 渲染
- 渲染模板
- thinkphp5模板篇之 模板循环标签
- thinkphp5 之数据操作和模板输出
- THINKPHP5 入门 -7 视图和模板
- Thinkphp5学习(25)视图和模板
- thinkphp5 引入前台、后台模板方法
- thinkphp5自定义 模板替换规则 如__PUBLIC__
- BFS例题详解
- chromiumwebview裁剪总结
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- linux系统的搭建
- Java学习笔记整理06
- ThinkPHP5 模板渲染
- java面向对象总结
- 移动前端开发和 Web 前端开发的区别是什么?
- 字符串
- C# 短信通知(中国网建sms短信平台API)
- Linux安装Weblogic遇到的问题
- Selenium模拟JQuery滑动解锁
- C# Graphics图像旋转与绘图总结
- Hive 1、什么是Hive,Hive有什么用