摘要:一管理员列表 管理员列表页面,就是查询出所有的admins表中的数据,然后将其渲染到视图中public function index() { //加载管理员列表 $data = SysDb::table('ad
一管理员列表
管理员列表页面,就是查询出所有的admins表中的数据,然后将其渲染到视图中
public function index() { //加载管理员列表 $data = SysDb::table('admins')->order('id desc')->lists(); $this->view->assign('lists',$data); return $this->view->fetch(); }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="/static/plugins/layui/css/layui.css"> <script src="/static/plugins/layui/layui.js"></script> <style> .header span{ background: #FF5722;color:#fff;padding:10px;margin-left: 30px;line-height: 36px;} .header button{margin-right:20px;float:right;margin-top: 5px;} .header div{border-bottom: 2px solid #FF5722;} </style> </head> <body> <div class="header"> <span>管理员列表</span> <button class="layui-btn-sm layui-btn" onclick="add()">添加</button> <div></div> </div> <table class="layui-table"> <thead> <tr> <th>ID</th> <th>用户名</th> <th>真实姓名</th> <th>角色</th> <th>状态</th> <th>创建时间</th> <th>操作</th> </tr> </thead> <tbody> {volist name="lists" id="vo"} <tr> <td>{$vo.id}</td> <td>{$vo.username}</td> <td>{$vo.truename}</td> <td>{$vo.gid}</td> <td>{$vo.status==0 ? '正常' : '<span style="color:red">禁用</span>'}</td> <td>{$vo.add_time|date="Y-m-d H:i:s"}</td> <td> <button class="layui-btn layui-btn-xs" onclick="add({$vo.id})">编辑</button> <button class="layui-btn layui-btn-danger layui-btn-xs" onclick="del({$vo.id})">删除</button> </td> </tr> {/volist} </tbody> </table> <script> //添加方法 layui.use(['layer'],function () { layer = layui.layer; $ = layui.jquery; }); function add(id){ layer.open({ type:2, title:id>0?'编辑管理员':'添加管理员', shade:0.3, area:['480px','400px'], content:'/index.php/admins/admin/add?id='+id, }) } function del(id) { layer.confirm('确定要删除么?',{ icon:3, btn:['确定','取消'], },function () { $.post('/index.php/admins/admin/del',{ 'id':id },function (data) { if(data.res == 1){ layer.alert(data.msg,{'icon':2}) }else{ layer.alert(data.msg,{'icon':1}) setTimeout(function(){window.location.reload()},1500) } },'json') }) } </script> </body> </html>
二.新增管理员操作 /更新操作
更新操作和新增操作公用一个方法,当点击新增按钮,不传入id,当点击编辑按钮,则将点击的数据的id传入到控制器方法中,在控制器中进行判断,如果有获取到id的值,则是更新操作,且根据id来查询数据表中数据,将其赋值给模板变量,如果没有id,则是新增操作,更新操作不可以编辑用户名,所以判断是否有id,如果有id则用户名表单不可编辑.将表单中的数据通过post方式传到控制器中,然后进行判断,各个字段的值是否为空,为空则返回相对信息,如果都满足,则执行添加/更新操作,其中密码字段在更新操作时不需要赋值给视图中,所以当更新时(id有值),如果密码有值就进行更新,没有值就不进行更新,所以只有当id没有值的时候才进行密码为空判断
//添加管理员 public function add() { $id = (int)input('get.id'); $ids = SysDb::table('admins')->where(['id'=>$id])->item(); $this->view->assign('ids',$ids); //渲染模板 return $this->view->fetch(); } //保存管理员 public function save(){ //获取表单提交的数据 $data['username'] = trim(input('post.username')); $data['gid'] = (int)input('post.gid'); $data['truename'] = input('post.truename'); $data['status'] = (int)input('post.status'); $data['id'] = (int)input('post.id'); $password = input('post.password'); if(!$data['username']){ return ['res'=>1,'msg'=>'用户名不能为空']; } if(!$data['gid']){ return ['res'=>2,'msg'=>'角色不能为空']; } if(!$data['truename']){ return ['res'=>3,'msg'=>'真实姓名不能为空']; } //只有id等于0时也就是新增时才进行判断密码是否为空 if($data['id'] == 0 && !$password){ return ['res'=>5,'msg'=>'密码不能为空']; } //有密码,进行加密 if($password){ $data['password'] = md5($data['username'].$password); } $res = true; //如果id等于0,所以进行新增操作, if($data['id'] == 0){ $item = SysDb::table('admins')->where(['username'=>$data['username']])->item(); if($item){ // exit(json_encode(array('res'=>4,'msg'=>'该用户已经存在'))); return ['res'=>4,'msg'=>'该用户已经存在']; } $data['add_time'] = time(); $res = SysDb::table('admins')->insert($data); }else{ //进行更新操作 $res = SysDb::table('admins')->update($data); } //返回结果 if($res){ exit(json_encode(['res'=>0,'msg'=>'保存成功!'])); }else{ exit(json_encode(['res'=>6,'msg'=>'保存失败!'])); } }
三.删除操作
删除操作,就是将id通过post传入然后进行强制转换,确保安全,然后进行删除操作
public function del(){ $id = (int)input('post.id'); $res = SysDb::table('admins')->where(['id'=>$id])->delete(); if($res){ exit(json_encode(['res'=>0,'msg'=>'删除成功!'])); } exit(json_encode(['res'=>1,'msg'=>'删除失败!'])); }
批改老师:韦小宝批改时间:2018-12-27 09:27:54
老师总结:你的作业一直写的都很棒!写的很详细!继续加油吧!不要骄傲!