ThinkPHP5.0之视图和模板

ThinkPHP5.0之视图和模板

  1. 加载视图
	// 显示模板
	return $this->fetch();
	// 或者使用助手函数
	return	view('index');
	
	注意:
	1、默认不写参数,则加载默认当前模块/默认视图目录/当前控制器(小写)/当前操作(小写).html
	如当前在admin模块/Index控制器/index方法,则默认加载admin/view/Index/index.html
	2、若当前在admin模块/Index控制器/getIndex方法,则默认的模板文件名规则改为实际操作方法名的小写+下划线写法
	如:admin/view/Index/get_index.html
	
  1. 分配数据到模板
	//  显示模板并分配数据
	$this->fetch("index",['age' => $age]);
	// 或者使用助手函数
	return view("index", ['age' => $age]);
	// 或者
	$this->assign('赋值变量名','值');
	$this->assign('name', $name);
  1. 模板引擎
	ThinkPHP内置了一个基于XML的性能卓越的模板引擎,这是一个专门为ThinkPHP服务的内置模板引擎,使用了 XML标签库技术的编译型模板引擎。
	
  1. 模板继承
	// 在模块的视图目录下,新建一个存放模板的目录Layout,新建一个公共模板文件base.html,用于模板继承
	<html> 
	<head> 
	<meta	http-equiv="Content-Type"	content="text/html;	charset=utf-8"> 
	<title>{block	name="title"}标题{/block}</title> 
	</head> 
	<body> 
		{block	name="content"}内容{/block} 
	</body> 
	</html>
	
	// 	在子模板中继承父模板
	{extend	name="base"	/} 
	{block	name="title"}子模板标题{/block}
	{block	name="content"}
	子模板主体内容
	{/block}

  1. 模板引擎语法
	// 使用变量
	// 在控制器中分配数据加载到模板中
		$this->fetch("index", ['username' => "用户名"]);
		{$username}
	
	// 使用函数
	// 在控制器中分配数据加载到模板中
		$this->fetch("index", ['time' => time()]);
		{$time}

	// 分配变量并使用函数
		$this->fetch("index", ['data' => 'abc']);
		{$data|md5|substr=0,10}
	
	// 使用默认值
		{$data|default='你好'}

	// 使用运算符
	{$data['score']+10}

	// 使用三元运算符
		{$varname.aa	??	'xxx'}
		等价于
		<?php echo	isset($varname['aa'])	?	$varname['aa']	:	'默认值';	?>
		
		{$varname?='xxx'}	
		等价于
		<?php	if(!empty($name))	echo	'xxx';	?>
	
	// 原样输出
	// 可以使用 literal 标签来防止模板标签被解析
	// 可能和内置模板引擎的解析规则冲突的地方都可以使用 literal 标签 处理。
		{literal}				
			Hello,{$name}!
		 {/literal}

	// 模板注释
	// 单行注释
		{/*	注释内容	*/	}	或	{//	注释内容	}	
		注意: { 和注释标记之间不能有空格。
 	// 多行注释
		{/*	这是模板 注释内容*/	}
	
	// 引入子视图
		{include file="Layout/header" /}
	
  1. 内置标签
	// volist标签
	查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出
		$list	=	User::all(); 
		$this->assign('list',$list);
	// 模板中循环输出
	// name属性表示模板赋值的变量名称,id表示当前的循环变量
		{volist name='list' id='vo'}
			{$vo.id}:{$vo.name}
		{/volist}

	// 输出查询结果中的部分数据,如输出其中第5-15条记录
		{volist	name="list"	id="vo"	offset="5"	length='10'}
		 	{$vo.name} 
		 {/volist}
	
	// foreach标签
	// foreach标签类似与volist标签,但foreach不止可以循环数组,还能循环对象
		{foreach $list as $v}
			{$v.name}
		{/foreach}	
	// 也可以使用下面的用法:
	// name属性表示模板赋值的变量名称,id表示当前的循环变量
		{foreach name='list' item='vo'}
			{$vo.name}
		{/foreach}	

	// for标签
	{for start='开始值' end='结束值' comparison='lt/gt' step='递进值' name='循环变量名'}
	{/for}
	// 开始值、结束值、步进值和循环变量都可以支持变量,开始值和结束值是必须,其他是可选。comparison	的默 认值是lt,name的默认值是i,步进值的默认值是1
		{for start="1" end="100"} 
			{$i}
		 {/for}

	// if标签
		{if	condition="表达式"}{/if}
		{if	(表达式)}{/if}
		{if 表达式}{/if}
		
		{if condition='$age>20'}
			大于20
		{elseif condition='$age<18' /}
			小于18
		{else /}
			其他
		{/if}
		
	// PHP标签
			{php}echo	'Hello,world!';{/php}
	
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sheliutao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值