商品列表
手册
目录
收藏334
分享
阅读187516
更新时间2022-04-28
前言:
模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的.
模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的
| 标签类型 | 描述 |
| 普通标签 | 主要用于输出变量、函数过滤和做一些基本的运算操作 |
| XML标签 | 也称为标签库标签,主要完成一些逻辑判断、控制和循环输出,并且可扩展 |
| 运算符 | 示例 |
| + | {$a+$b} |
| - | {$a-$b} |
| * | {$a*$b} |
| / | {$a/$b} |
| % | {$a%$b} |
| ++ | {$a++} 或 {++$a} |
| -- | {$a--} 或{--$a} |
| 综合运算 | {$a+$b*10+$c} |
| 三元运算符 | {$a==$b ? 'yes' : 'no'} |
controller文件
public function index(){
View::assign('a',100);
View::assign('b',21);
return View::fetch();
}
view文件
{$a+$b}{$a-$b}{$a*$b}{$a/$b}{$a%$b}{$a++}{++$a}{$a--}{--$a}{$c ? '存在' : '不存在'}
| 方法 | 描述 |
| date | 日期格式化(支持各种时间类型) |
| format | 字符串格式化 |
| upper | 转换为大写 |
| lower | 转换为小写 |
| first | 输出数组的第一个元素 |
| last | 输出数组的最后一个元素 |
| default | 默认值 |
| raw | 不使用(默认)转义 |
| md5 | md5加密 |
| substr | 截取字符串 |
可以多函数调用
controller文件
public function index(){
View::assign('time',1576048640);
View::assign('num',10.0032);
View::assign('str','OUyangKE');
View::assign('arr',[
'朱老师',
'欧阳克',
'西门大官人'
]);
return View::fetch();
}
view文件
{$time|date='Y-m-d H:i:s'}{$num|format='%02d'}{$str|upper}{$str|lower}{$arr|first}{$arr|last}{$default|default="欧阳克"}{$str|substr=0,3}{$str|md5}{$str|lower|substr=0,3}
foreach 标签的用法和PHP语法非常接近,用于循环输出数组或者对象的属性
controller文件
public function index(){
$arr = [
[
'id' => 1,
'name' => '欧阳克'
],
[
'id' => 2,
'name' => '朱老师'
],
[
'id' => 3,
'name' => '西门大官人'
]
];
View::assign('arr',$arr);
return View::fetch();
}
view文件
{foreach $arr as $v}
ID:{$v['id']}
姓名:{$v['name']}
{/foreach}
二维数组的结果输出
name 模板赋值的变量名称
id 当前的循环变量,可以随意起名
key 下标,从1开始,默认变量i
offset 开始行数
length 获取行数
empty 如果数据为空,显示此文字
view文件
{volist name="arr" id="v" key="k" offset="1" length="2"}
ID:{$v['id']}
姓名:{$v['name']}
下标:{$k}
{/volist}
if 标签的用法和PHP语法非常接近,用于条件判断
controller文件
public function index(){
View::assign('status',1);
View::assign('order_status',4);
return View::fetch();
}
view文件
{if $status == 1}
开启{/if}
{if $status == 0}
关闭{else/}
开启{/if}
{if $order_status == 0}
未支付{elseif $order_status == 1/}
已支付 待发货{elseif $order_status == 2/}
已发货 待收货{elseif $order_status == 3/}
已收货 待评论{elseif $order_status == 4/}
已完成{/if}
switch 标签的用法和PHP语法非常接近,用于条件判断
view文件
{switch $order_status}
{case 0 }
未支付{/case}{case 1 }
已支付 待发货{/case}{case 2 }
已发货 待收货{/case}{case 3 }
已收货 待评论{/case}{case 4 }
已完成{/case}{/switch}
include 标签,引入模版文件
load 标签,引入资源文件(css、js)
view文件,把头部和尾部分文件
{include file="public/header" /}
{include file="public/left" /}
{load href="/static/layui/css/layui.css" /}
{load href="/static/layui/layui.js" /}
{include file="public/tail" /}
1、条件标签
| 标签 | 描述 |
| in | 判断变量是否存在某些值 |
| notin | 判断变量是否不存在某些值 |
| between | 判断变量是否存在某些值 |
| notbetween | 判断变量是否不存在某些范围值 |
| present | 判断某个变量是否 已定义 |
| notpresent | 判断某个变量是否 未定义 |
| empty | 判断某个变量是否为空 |
| notempty | 判断某个变量是否不为空 |
| defined | 判断某个常量是否 已定义 |
| notdefined | 判断某个常量是否 未定义 |
public function index(){
View::assign('number',100);
View::assign('string','');
return View::fetch();
}{in name="number" value="99,100,101"}
number等于99,100,101任意一个值
{/in}
{notin name="number" value="99,100,101"}
number不等于99,100,101任意一个值
{/notin}
{between name="number" value="1,10"}
number等于1 到 10 之间的任意一个值
{/between}
{notbetween name="number" value="1,10"}
number不等于1 到 10 之间的任意一个值
{/notbetween}
{present name="number"}
number已经定义
{/present}
{notpresent name="n"}
n还没有定义
{/notpresent}
{empty name="string"}
name为空值
{/empty}
{notempty name="string"}
name有值
{/notempty}
{defined name="NAME"}
NAME常量已经定义
{/defined}
{notdefined name="NAME"}
NAME常量未定义
{/notdefined}2、比较标签
| 标签 | 描述 |
| eq | 等于 |
| neq | 不等于 |
| gt | 大于 |
| egt | 大于等于 |
| lt | 小于 |
| elt | 小于等于 |
| heq | 恒等于 |
| nheq | 不恒等于 |
public function index(){
View::assign("number",100);
View::assign("string","欧阳克");
return View::fetch();
}{eq name="number" value="100"}
number 等于 100
{/eq}
{neq name="number" value="101"}
number 不等于 101
{/neq}
{gt name="number" value="33"}
number 大于 33
{/gt}
{egt name="number" value="100"}
number 大于等于 100
{/egt}
{lt name="number" value="200"}
number 小于 200
{/lt}
{elt name="number" value="100"}
number 小于等于 100
{/elt}
{heq name="string" value="欧阳克"}
string 恒等于 欧阳克
{/heq}
{heq name="string" value="朱老师"}
string 恒不等于 朱老师
{/heq}3、循环标签
| 标签 | 描述 |
| for | 计数循环 |
start:开始值
end:结束值
step:步进值,默认1
name:循环变量名,默认i
{for start="1" end="50" step="5" name="i"}
{$i}
{/for}4、杂项标签
| 标签 | 描述 |
| literal | 原样输出 |
| php | 使用原生php代码 |
{literal}
{$name} 这里$name不会被当作变量,而是普通字符
{/literal}
{php}
echo '欧阳克';
{/php}controller代码
namespace app\controller;
use think\facade\View;
class Index{
public function index(){
$title = '商城';
$login = '欧阳克';
$left = [
[
'title' => '商品管理',
'lists' => [
[
'id' => 1,
'title' => '商品列表',
],
[
'id' => 2,
'title' => '商品分类',
]
]
],
[
'title' => '用户管理',
'lists' => [
[
'id' => 3,
'title' => '用户列表',
],
[
'id' => 4,
'title' => '购物车',
],
[
'id' => 5,
'title' => '用户地址',
],
[
'id' => 6,
'title' => '订单管理',
]
]
],
[
'title' => '后台管理',
'lists' => [
[
'id' => 7,
'title' => '管理员列表',
],
[
'id' => 8,
'title' => '个人中心',
],
[
'id' => 9,
'title' => '左侧菜单列',
]
]
]
];
$right = [
[
'id' => 1,
'title' => '熙世界2019秋冬新款长袖杏色上衣连帽宽松刺绣文艺落肩袖加厚卫衣BF风',
'cat' => '女装',
'price' => 189,
'discount' => 6,
'status' => 1,
// 'status' => '开启',
'add_time' => '2019-12-12',
// 'add_time' => '1576080000'
],
[
'id' => 2,
'title' => '秋水伊人双面呢冬装2019年新款女装气质西装领撞色羊毛大衣外套女',
'cat' => '女装',
'price' => 699,
'discount' => 7,
'status' => 1,
// 'status' => '开启',
'add_time' => '2019-12-12',
// 'add_time' => '1576080000'
],
[
'id' => 3,
'title' => '微弹中高腰直脚牛仔裤男',
'cat' => '男装',
'price' => 179,
'discount' => 8,
'status' => 0,
// 'status' => '开启',
'add_time' => '2019-12-12',
// 'add_time' => '1576080000'
],
[
'id' => 1,
'title' => '男士长袖t恤秋季圆领黑白体恤T 纯色上衣服打底衫',
'cat' => '男装',
'price' => 99,
'discount' => 9,
'status' => 1,
// 'status' => '开启',
'add_time' => '2019-12-12',
// 'add_time' => '1576080000'
],
];
View::assign([
'title' => $title,
'login' => $login,
'left' => $left,
'right' => $right
]);
return View::fetch();
}
}
view代码:head.html
{$title}--后台管理系统
.header{width:100%;height: 50px;line-height: 50px;background: #2e6da4;color:#ffffff;}
.title{margin-left: 20px;font-size: 20px;}
.userinfo{float: right;margin-right: 10px;}
.userinfo a{color:#ffffff;}
.menu{width: 200px;background:#333744;position:absolute;}
.main{position: absolute;left:200px;right:0px;}
.layui-collapse{border: none;}
.layui-colla-item{border-top:none;}
.layui-colla-title{background:#42485b;color:#ffffff;}
.layui-colla-content{border-top:none;padding:0px;}
.content span{background: #009688;margin-left: 30px;padding: 10px;color:#ffffff;}
.content div{border-bottom: solid 2px #009688;margin-top: 8px;}
.content button{float: right;margin-top: -5px;}
view代码:left.html
view代码:bottom.html
layui.use(['element','layer','laypage'], function(){
var element = layui.element;
var laypage = layui.laypage;
$ = layui.jquery;
layer = layui.layer;
resetMenuHeight();
});
// 重新设置菜单容器高度
function resetMenuHeight(){
var height = document.documentElement.clientHeight - 50;
$('#menu').height(height);
}
view代码:index.html
{include file="public/head" /}
{include file="public/left" /}
商品列表
ID
商品标题
分类
原价
折扣
现价
库存
状态
添加时间
{volist name="right" id="right_v"}
{$right_v.id}
{$right_v.title}
{$right_v.cat}
{$right_v.price}
{$right_v.discount}
{if $right_v.discount!=0}
{$right_v.price*($right_v.discount/10)}
{else/}
{$right_v.price}
{/if}
{$right_v.stock}
{if $right_v['status']==1}开启{else/}关闭{/if}
{$right_v.add_time|date='Y-m-d'}
{/volist}
{include file="public/bottom" /}
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习