唱午恕警赫财扦必汉锑什捅疟
数据表中的文档结构
创建模型类Article.php
<?php namespace app\common\model; //引入系统模型 use think\Model; //要使用模型必须继承系统模型 class Article extends Model { //配饰数据库的连接参数,因为使用了个性化的字符串连接 所以这里要写 //直接使用tp的数据库连接方式 这里就不用写 protected $connection="db_qiye"; //配置数据表 protected $table="article"; //设置主键 protected $pk="art_id"; //开启自动时间戳,除开单独开启之外 还可以在config\database.php中全局开启 //自动时间戳功能会将1528183378 转化为:2018-06-05 15:22:58 protected $autoWriteTimestamp=true; //设置添加时候的时间字段名称 protected $createTime="create_time"; //自动时间戳更新的字段 protected $updateTime="update_time"; //自动时间戳删除时的字段 protected $deleteTime="delete_time"; //上方的三个刚好与数据表中的字段一致 自动就能找到相应字段 可以不用写 }
创建控制器类Article.php
<?php namespace app\admin\controller; use app\common\controller\Base; use app\common\model\Article as ArtModel; class Article extends Base { public function index() { //获取文档 //根据时间查询 paginate()可以分页 获取分页数据 每页8条 下方代码获取分页数据 $arts=ArtModel::order('create_time')->paginate(8); //模板赋值 $this->view->arts = $arts; //渲染模板 return $this->view->fetch(); } }
引入模板类 打开x-admin 复制order-list.html到模板页 并改名为index.html
替换其中的头部
打开left-nav.html,修改url链接
打开文档管理
遍历数据
{include file="common@header"} <div class="x-nav"> <span class="layui-breadcrumb"> <a href="">首页</a> <a href="">文档</a> <a> <cite>文档列表</cite></a> </span> <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新"> <i class="layui-icon" style="line-height:30px">ဂ</i></a> </div> <div class="x-body"> <xblock> <button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button> <button class="layui-btn" onclick="x_admin_show('添加用户','./order-add.html')"><i class="layui-icon"></i>添加</button> <span class="x-right" style="line-height:40px">共有数据:88 条</span> </xblock> <table class="layui-table"> <thead> <tr> <th> <div class="layui-unselect header layui-form-checkbox" lay-skin="primary"><i class="layui-icon"></i></div> </th> <th>ID</th> <th>标题</th> <th>分类</th> <th>排序</th> <th>推荐</th> <th>发布时间</th> <th>更新时间</th> <th >操作</th> </tr> </thead> <tbody> {volist name="arts" id="art"} <tr> <td> <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon"></i></div> </td> <td>{$art.art_id}</td> <td>{$art.art_title}</td> <td>{$art.cate_id}</td> <td>{$art.art_order}</td> <td>{$art.art_rec}</td> <td>{$art.create_time}</td> <td>{$art.update_time}</td> <td class="td-manage"> <a title="查看" onclick="x_admin_show('编辑','order-view.html')" href="javascript:;"> <i class="layui-icon"></i> </a> <a title="删除" onclick="member_del(this,'要删除的id')" href="javascript:;"> <i class="layui-icon"></i> </a> </td> </tr> {/volist} </tbody> </table> <div class="page"> <div> <a class="prev" href=""><<</a> <a class="num" href="">1</a> <span class="current">2</span> <a class="num" href="">3</a> <a class="num" href="">489</a> <a class="next" href="">>></a> </div> </div> </div> <script> layui.use('laydate', function(){ var laydate = layui.laydate; //执行一个laydate实例 laydate.render({ elem: '#start' //指定元素 }); //执行一个laydate实例 laydate.render({ elem: '#end' //指定元素 }); }); /*用户-停用*/ function member_stop(obj,id){ layer.confirm('确认要停用吗?',function(index){ if($(obj).attr('title')=='启用'){ //发异步把用户状态进行更改 $(obj).attr('title','停用') $(obj).find('i').html(''); $(obj).parents("tr").find(".td-status").find('span').addClass('layui-btn-disabled').html('已停用'); layer.msg('已停用!',{icon: 5,time:1000}); }else{ $(obj).attr('title','启用') $(obj).find('i').html(''); $(obj).parents("tr").find(".td-status").find('span').removeClass('layui-btn-disabled').html('已启用'); layer.msg('已启用!',{icon: 5,time:1000}); } }); } /*用户-删除*/ function member_del(obj,id){ layer.confirm('确认要删除吗?',function(index){ //发异步删除数据 $(obj).parents("tr").remove(); layer.msg('已删除!',{icon:1,time:1000}); }); } function delAll (argument) { var data = tableCheck.getData(); layer.confirm('确认要删除吗?'+data,function(index){ //捉到所有被选中的,发异步进行删除 layer.msg('删除成功', {icon: 1}); $(".layui-form-checked").not('.header').parents('tr').remove(); }); } </script> </body> </html>
执行:
将分类显示的数字转化为具体的名称
<?php // 应用公共文件 use think\Db; //获取管理员用户名 function getUserName() { return Db::connect('db_qiye')->table('user')->value('user_name'); } //获取当前时间 function getCurrentTime() { return date('Y-m-d H:i:s',time()); } //获取mysql版本 要使用原生SQL查询才能实现 function getMysqlVersion() { //query查询结果返回为数组 需要得到的是第一条(只有一条)数据的version字段 return Db::connect('db_qiye')->query('select VERSION() as version')[0]['version']; } //根据分类的id来获取分类的名称 function getCateName($cateId) { return Db::connect('db_qiye') ->table('category') ->where('cate_id',$cateId) ->value('cate_name'); }
标题只显示25个字符,使用php函数:mb_substr()截取一段字符串
将推荐显示为推荐和普通
核心源码:
{volist name="arts" id="art"} <tr> <td> <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon"></i></div> </td> <td>{$art.art_id}</td> <!-- 这里使用系统函数mb_substr只获取标题的25个字符 --> <td>{:mb_substr($art.art_title,0,25,'utf8')}</td> {//为了直观,这里调用了自定义函数:根据分类id,自动获取对应的分类名称} <td>{:getCateName($art.cate_id)}</td> <td>{$art.art_order}</td> <td> {//如果变量art.art_rec值为1 输出推荐 否则输出普通} {eq name="art.art_rec" value="1"} 推荐 {else/} 普通 {/eq} </td> <td>{$art.create_time}</td> <td>{$art.update_time}</td> <td class="td-manage"> <a title="查看" onclick="x_admin_show('编辑','order-view.html')" href="javascript:;"> <i class="layui-icon"></i> </a> <a title="删除" onclick="member_del(this,'要删除的id')" href="javascript:;"> <i class="layui-icon"></i> </a> </td> </tr> {/volist}
测试:
分页功能实现:
核心源码:
<div class="page"> <div> {//显示分页 raw将html代码进行解析} {$arts|raw} </div> </div>
发挥作用的代码只有:{$arts|raw}
index.html完整的代码:
{include file="common@header"} <div class="x-nav"> <span class="layui-breadcrumb"> <a href="">首页</a> <a href="">文档</a> <a> <cite>文档列表</cite></a> </span> <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新"> <i class="layui-icon" style="line-height:30px">ဂ</i></a> </div> <div class="x-body"> <xblock> <button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button> <button class="layui-btn" onclick="x_admin_show('添加用户','./order-add.html')"><i class="layui-icon"></i>添加</button> <span class="x-right" style="line-height:40px">共有数据:88 条</span> </xblock> <table class="layui-table"> <thead> <tr> <th> <div class="layui-unselect header layui-form-checkbox" lay-skin="primary"><i class="layui-icon"></i></div> </th> <th>ID</th> <th>标题</th> <th>分类</th> <th>排序</th> <th>推荐</th> <th>发布时间</th> <th>更新时间</th> <th >操作</th> </tr> </thead> <tbody> {volist name="arts" id="art"} <tr> <td> <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon"></i></div> </td> <td>{$art.art_id}</td> <!-- 这里使用系统函数mb_substr只获取标题的25个字符 --> <td>{:mb_substr($art.art_title,0,25,'utf8')}</td> {//为了直观,这里调用了自定义函数:根据分类id,自动获取对应的分类名称} <td>{:getCateName($art.cate_id)}</td> <td>{$art.art_order}</td> <td> {//如果变量art.art_rec值为1 输出推荐 否则输出普通} {eq name="art.art_rec" value="1"} 推荐 {else/} 普通 {/eq} </td> <td>{$art.create_time}</td> <td>{$art.update_time}</td> <td class="td-manage"> <a title="查看" onclick="x_admin_show('编辑','order-view.html')" href="javascript:;"> <i class="layui-icon"></i> </a> <a title="删除" onclick="member_del(this,'要删除的id')" href="javascript:;"> <i class="layui-icon"></i> </a> </td> </tr> {/volist} </tbody> </table> <div class="page"> <div> {//显示分页 raw将html代码进行解析} {$arts|raw} </div> </div> </div> <script> layui.use('laydate', function(){ var laydate = layui.laydate; //执行一个laydate实例 laydate.render({ elem: '#start' //指定元素 }); //执行一个laydate实例 laydate.render({ elem: '#end' //指定元素 }); }); /*用户-停用*/ function member_stop(obj,id){ layer.confirm('确认要停用吗?',function(index){ if($(obj).attr('title')=='启用'){ //发异步把用户状态进行更改 $(obj).attr('title','停用') $(obj).find('i').html(''); $(obj).parents("tr").find(".td-status").find('span').addClass('layui-btn-disabled').html('已停用'); layer.msg('已停用!',{icon: 5,time:1000}); }else{ $(obj).attr('title','启用') $(obj).find('i').html(''); $(obj).parents("tr").find(".td-status").find('span').removeClass('layui-btn-disabled').html('已启用'); layer.msg('已启用!',{icon: 5,time:1000}); } }); } /*用户-删除*/ function member_del(obj,id){ layer.confirm('确认要删除吗?',function(index){ //发异步删除数据 $(obj).parents("tr").remove(); layer.msg('已删除!',{icon:1,time:1000}); }); } function delAll (argument) { var data = tableCheck.getData(); layer.confirm('确认要删除吗?'+data,function(index){ //捉到所有被选中的,发异步进行删除 layer.msg('删除成功', {icon: 1}); $(".layui-form-checked").not('.header').parents('tr').remove(); }); } </script> </body> </html>
测试:
汕间绕芹凹豪逛骄习充便哼栓