thinkphp 5.0 视图模板(二)

指定加载页面

//如果(指定操作)调用:
return $view->fetch('add');
//则定位模板文件为:
 //[模板文件目录]/当前控制器名(小写+下划线)/add.html
//如果调用控制器的某个模板文件使用:
return $view->fetch('user/add');

模板标签输出

//下面是数组输出
$data['name'] = 'ThinkPHP';
$data['email'] = 'thinkphp@qq.com';
$view->assign('data',$data);
//那么,在模板中我们可以用下面的方式输出:
Name:{$data.name}
Email:{$data['email']}

模板标签使用函数

//使用函数,有很多函数
{$data.name|md5} 编译后的结果是:	<?php echo (md5($data['name'])); ?>
{$create_time|date="y-m-d",###} 编译后的结果是 <?php echo (date("y-m-d",$create_time)); ?>
//函数也可以使用冒号
{:substr(strtoupper(md5($name)),0,3)}
//我们可以给变量输出提供默认值,例如:
{$user.nickname|default="这家伙很懒,什么也没留下"}
//对系统变量依然可以支持默认值输出,例如:
{$Think.get.name|default="名称为空"}
//默认值和函数可以同时使用,例如:
{$Think.get.name|getName|default="名称为空"}
//三元运算符
{$status? '正常' : '错误'}
{$info['status']? $info['msg'] : $info['error']}
{$info.status? $info.msg : $info.error }

页面包含文件

{include file="public/header" /} // 包含头部模版header
{include file="public/menu" /} // 包含菜单模版menu
{include file="blue/public/menu" /} // 包含blue主题下面的menu模版
//可以一次包含多个模版,例如:
{include file="public/header,public/menu" /}
//当然也可以带参数
{include file="Public/header" title="$title" keywords="开源WEB开发框架" /}

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>[title]</title>
<meta name="keywords" content="[keywords]" />
</head>

页面布局

其实不是很常用,主要是太局限性了,只能替换一个。
1. 第一步在视图目录下,新建文件lizhili.html(application\admin\view)
2. 在页面中保留统一的文件,不统一的用{CONTENT}替换, {CONTENT}只能有一个
3. 页面中如何书写,页面直接书写{layout name=”lizhili” /}

页面继承

  • 下面是在基础模板里面编写
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>{block name="title"}标题{/block}</title>
</head>
<body>
{block name="menu"}菜单{/block}
{block name="left"}左边分栏{/block}
{block name="main"}主内容{/block}
{block name="right"}右边分栏{/block}
{block name="footer"}底部{/block}
</body>
</html>
  • 下面是在子模板里面编写
{extend name="base" /}
{block name="title"}{$title}{/block}
{block name="menu"}
<a href="/" >首页</a>
<a href="/info/" >资讯</a>
<a href="/bbs/" >论坛</a>
{/block}
{block name="left"}{/block}
{block name="main"}
{volist name="list" id="vo"}
<a href="/new/{$vo.id}">{$vo.title}</a><br/>
 {$vo.content}
{/volist}
{/block}
{block name="right"}
 最新资讯:
{volist name="news" id="new"}
<a href="/new/{$new.id}">{$new.title}</a><br/>
{/volist}
{/block}
{block name="footer"}
{__block__}
 @ThinkPHP 版权所有
{/block}

模板标签

    1,volist循环,参考手册
            {volist name="list" id="vo" key="k" }
                {$k}.{$vo.name}
            {/volist}
            {volist name="list" id="vo" empty="暂时没有数据" }
                {$vo.id}|{$vo.name}
            {/volist}
        2,foreach循环
            {foreach name="list" item="vo"}
                {$vo.id}:{$vo.name}
            {/foreach}
        3,for循环
            {for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" }
            {/for}
        4,比较运算符,tp框架里面不能使用>和<
            标签              含义
            eq或者 equal      等于
            neq 或者notequal  不等于
            gt              大于
            egt             大于等于
            lt              小于
            elt             小于等于
            heq             恒等于
            nheq            不恒等于
        5,if判断标签
            {if condition="($name == 1) OR ($name > 100) "}
                value1
            {elseif condition="$name eq 2"/}
                value2
            {else /} 
                value3
            {/if}
        6,switch判断语句
            {switch name="User.level"}
                {case value="1"}value1{/case}
                {case value="2"}value2{/case}
                {default /}default
            {/switch}
        7,包含语句
            {in name="id" value="1,2,3"}
                id在范围内
            {else/}
                id不在范围内
            {/in}
        8,区间范围
            {between name="id" value="1,10"}
                输出内容1
            {else/}
                输出内容2
            {/between}
        9,原生php
            {php}echo 'Hello,world!';{/php}
            <?php echo 'Hello,world!'; ?>
文章来源: thinkphp 5.0 视图模板(二)

人吐槽 人点赞

猜你喜欢

发表评论

用户名: 密码:
验证码: 匿名发表

你可以使用这些语言

查看评论:thinkphp 5.0 视图模板(二)