Thinkphp5基础——02 模板 && 视图

基本概念


视图

  1. 决定向模板传入什么数据,以及显示哪个模版。

  2. 视图功能,由\think\View类配合视图驱动类完成。
    文件路径: thinkphp/library/think/View.php

  3. 视图文件根目录,默认在模块的view目录。


模板

  1. 定义如何接收、显示数据。

  2. 呈现html;

  3. 目前的内置模板引擎包括PHP原生模板和Think模板引擎。



调用视图


一、没有继承 \think\Controller

view('[控制器:]视图文件的名称,注意不包含.html'[,'模板变量(数组)'])

实例

注意,不一定是本控制器下的视图文件,别的控制器下的也行。

	public function hello($name = 'ThinkPHP5')
	{
		//return 'hello,' . $name;
		return view('admin:hello');
	}



二、继承了 \think\Controller

fetch'[模板文件]',[模板变量](关联数组))

虽然fetch方法也可以传递传参到模板文件,但是一般还是使用模板赋值的方法进行参数传递。


模板文件写法

  • 不带任何参数,自动定位对应控制器对应方法视图文件.

        当前模块/view/当前控制器名(小写)/当前操作(小写).html
    
  • [模块@]控制器/方法 可以跨模块操作

  • 完整模板文件名


实例

return $this->fetch('admin@member/edit', ['name' => 'thinkphp']);



模板赋值


基本方法

	单个参数传值
	assign()    
	
	批量传值
	assign([
		'key1'=>'value1',
		'key2'=>'value2',
	])

实例
	public function index()
    {
        // 模板变量赋值
        $this->assign('name','ThinkPHP');
        $this->assign('email','thinkphp@qq.com');
        // 或者批量赋值
        $this->assign([
            'name'  => 'ThinkPHP',
            'email' => 'thinkphp@qq.com'
        ]);
        // 模板输出
        return $this->fetch('index');
    }



模板标签

内置的模板引擎,支持普通标签和XML标签两种。


变量

 普通变量:{$变量名称}

 索引数组:{$数组名称[下标]}

 关联数组:{$变量名称[下标]} 或 {$变量名称.下标} 

 对象:{$变量名称:属性名称}



系统变量、系统常量、配置选项

{$Think.系统变量.下标}

{$Think.常量} 或 {$Think.const.常量}

{$Think.config.配置Key}



使用函数


1. 单个参数: {变量 | 函数名称}

如: {$username | strtoupper}

2. 多个参数: {变量 | 函数名称,占位符}

如:
	传入的参数 $str = javascript
	
	{$str | substr=0,4}

	最终显示java。

3. 三元运算:{变量 ? 值1 : 值2}

如:
	{$sex ? '男' : '女'}

扩展


1. 如果有该变量,输出改变量,否则输出默认值
	{$name ?? '默认值'}    

2. true,输出默认值
	{$name ?= '默认值'} 

3. false,输出默认值
	{$name ?: 'NO'}

4. 表达式为真,输出第一项;否则输出第二项
	{$a==$b ? 'yes' : 'no'}



循环输出标签


foreach循环
	{foreach $list as $vo}
		{$vo.id}:{$vo.name}
	{/foreach}

volist循环
	{volist name='list' id='vo' offset='5' length ='10'}
		{vo.name}
	{/volist}

name:要遍历的数组

id: 每个成员的名字

offset:从第几个开始

length:输出几个



判断标签


if标签
	{if condition="($name == 1) OR ($name > 100)"}
		value1
	{elseif condition="$name eq2"/}
		value2
	{else /}
		value3
	{/if}

SWITCH标签
	{switch name="变量"}
		{case value="值1"}
			内容
		{/case}
		{case value="值2"}
			内容2
		{/case}
		{default /}
		默认情况
	{/switch}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值