thinkphp5模板输出 模板路径设置

我们的控制器为index
当前的方法为ts方法
模板目录View我们直接用的方法

我们以输出Tp表模型中的数据为例子

将数据输出到模板中

public function ts()
	{
		$list = Tp::where('id>12')->select();
		$this->assign('count',count($list));
		return $this->fetch();
	}

ts模板代码

<h3>共有{$count}条</h3>
输出为
共有16条

模板中使用引入文件

网站顶部底部一般都使用相同的文件,这时候我们在模板文件中用{include file="文件地址名" /}来引入
如在上面的ts模板中,我们将一个hd.html引入做顶部信息,在ts.html使用的是
{include file="index/hd" /}
		<h3>共有{$count}条</h3>

hd.html的代码

	顶部信息<br>
显示后
thinkphp5模板输出 模板路径设置

动态修改头部信息

如果我们众多模板共用同一个顶部模板,而不同模板的标题/关键词或其它信息有可能不同,就需要我们设置成不同。

ts.html引入的头部

注:titletn都是设置的传递值名称,这个值可以是任何一个名称,只要在头部模板中用[值名]引用就起作用
{include file="index/hd" title="动态标题::一" tn="这是一条给头部添加的动态信息"/ }

hd.html中的内容
我们在里面使用[title][tn]显示前面定义的传递值

<html>
	<head>
		<title>[title]</title>
	</head>
	<body>
		顶部信息<br>[tn]
	</body>
</html>

全局模板使用

layout是一个全局模板配置变量
我们在模板中经常会调用同样的头部与底部,这时候可以使用loyout,直接将头部底部放入统一的文件中,再对该文件调用即可
头部hd.html 底部ft.html

将头底部放入统一文件log.html中

统一调用的文件位置
application-admin-view-loy.html
里面的{__CONTENT__},指的是下面调用该文件的ts.html模板中的内容

{include file="index/hd"}

{__CONTENT__}

{include file="index/ft" /}

ts.html内容

位于application-admin-view-index-ts.html
{layout name="loy"}中的loy便是我们刚才的公共模板
<style>
			h3{ color:#005384; font-size:24px }
			.info { padding:10px; border-bottom:1px saddlebrown solid;}
			.pagination li {float:left; list-style: none; width:20px;}
		</style>

		{layout name="loy"}
		<h3>共有{$count}条</h3><hr>
		{volist name="list" id="user"}
			<div class="info">
				id:{$user.id}<br>
				名称:{$user.name}<br>
				电话:{$user.tel}<br>
			</div>
		{/volist}

全局模板信息的设置

注:通过在配置文件中设置,我们不需要再在模板中引入{layout name="全局名"},当前项目中的模板会自动加载该功能

config.php中的template里可对layout进行设置
layout_name定义我们公共模板的名称
layout_item定义各模板中用的标签
如上面我们用的是{__CONTENT__},我们也可以设置为,如:{__CONIC__}
下面是我们的详细设置内容
#全局模板
		'layout_on'	=>	true, #开启
		'layout_name'	=>	'loy', #layout引用公用模板名称
		'layout_item'	=>	'{__CONIC__}'
经过上面设置后,我们上面的ts.html内容变为,即不再用包含{layout name="loy"}
<style>
			h3{ color:#005384; font-size:24px }
			.info { padding:10px; border-bottom:1px saddlebrown solid;}
			.pagination li {float:left; list-style: none; width:20px;}
		</style>

		<h3>共有{$count}条</h3><hr>
		{volist name="list" id="user"}
			<div class="info">
				id:{$user.id}<br>
				名称:{$user.name}<br>
				电话:{$user.tel}<br>
			</div>
		{/volist}

某页面不使用全局模板标签

当我们在config.php中设置了全局标签开启,导致所有页面都自动使用全局模板标签,有的时候我们不想使用该全局时,只需要在页面中添加{__NOLAYOUT__}即可
如上面ts.html中使用
{__NOLAYOUT__}
		<h3>共有{$count}条</h3><hr>
		{volist name="list" id="user"}
			<div class="info">
				id:{$user.id}<br>
				名称:{$user.name}<br>
				电话:{$user.tel}<br>
			</div>
		{/volist}
则当前页面只显示该模板中的内容,不再加载全局标签


模板路径设置

如果我们不想将模板放在当前项目里面,而是放在其它的目录 ,那么我们需要在
application下的config.php中进行路径设置
找到里面的模板设置中的view_path,默认为空
我想将模板目录view(这个可改为任何名)放在根目录下,那么我设置的值是
'view_path'    => '../view/',

模板后缀

我感觉这个功能还是很有用的,能有效的防止别人根据文件名的方式猜模板目录位置盗取模板
默认为
'view_suffix'  => 'html',
可以改成我们想要的任意后缀名。

评论

大侠名号:   验证暗号: 点击我更换图片

修远兮

在这里记录每一点自己需要的知识

添加创始人微信,一起交流心得

推荐文章RECOMMEND