controller文件内Admin.php
<?php namespace app\admin\controller; use think\Controller; use app\admin\model\Admin as AdminModel; //使用分页类 取别名解决类名冲突 class Admin extends Controller{ public function lst(){ /* 分页开始 */ $list = AdminModel::paginate(3); $this -> assign('list',$list); /* 结束 */ return $this->fetch('lst'); } public function add(){ //判断页面是否提交 if(request()->isPost()){ //打印接收到的参数 //dump(input('post.')); $data = [ //接受传递的参数 'username' => input('username'), 'password' => md5(input('password')), ]; /*验证开始*/ $validate = \think\Loader::validate('Admin'); /* scene('add') 在add页面添加验证应用 */ if(!$validate -> scene('add')-> check($data)){ /* 验证失败打印 */ $this -> error($validate->getError()); die; } /*结束*/ /* Db('表名') 数据库助手函数*/ if(Db('admin') -> insert($data)){ //添加数据 return $this->success('添加成功','lst'); //成功后跳转 lst 界面 }else{ return $this->error('添加管理员失败'); } return; } return $this->fetch(); } /* 管理员修改账号或密码 */ public function edit(){ $id = input('id');//接受url传递的参数 $admins = db('admin')->find($id);//查询数据库 if(request()->isPost()){ $data = [ 'id'=>input('id'),//接收到的主键 'username'=>input('username'), ]; /* 如果接收到参数就修改,没有接受到参数就不修改(获取原来的值) */ if(input('password')){ $data['password'] = md5(input('password')); }else{ $data['password'] = $admins['password']; } /* 验证数据 */ $validate = \think\Loader::validate('Admin'); if(!$validate -> scene('edit')-> check($data)){ /* 验证失败打印 */ $this -> error($validate->getError()); die; } /* 修改成功跳转 */ if(db('admin')->update($data)){ $this->success('修改管理员成功','lst'); }else{ $this->error('修改管理员失败'); } return; } $this->assign('admins',$admins);//把查询的值分配到页面当中 return $this->fetch(); } /* 管理员删除 */ public function del(){ $id = input('id');//接收页面传递的id if ($id != 1) { //如果id的值是 1 第一个录入系统的,初始化的管理员不能删除 /* 根据id删除数据库数据 */ if (db('admin') -> delete(input('id'))){ $this->success('删除管理员成功','lst'); }else{ $this->error('删除管理员失败'); } }else{ $this->error('初始化管理员不能删除(第一个管理员)'); } } }
model文件内Admin.php
<?php namespace app\admin\model; use think\Model; class Admin extends Model{ }
validate文件内Admin.php
<?php namespace app\admin\validate; use think\Validate; class Admin extends Validate{ /* 数据验证开始 */ protected $rule = [ 'username' => 'require|min:6', 'password' => 'require|max:32' ]; protected $message = [ 'username.require' => '名称必须', 'username.min' => '名称最少6个字符', 'password.require' => '密码必须', 'password.max' => '密码最多不能超过25个字符', ]; /* 结束 */ /* 添加场景验证 */ protected $scene = [ /* * 'add' => ['username'=>'require','password'], * 在add页面,只验证 username的require(必填),对别的不验证 */ /* 在add页面添加验证用户名 username 密码password*/ 'add' => ['username','password'], /* edit页面只需要验证用户名不为空 */ 'edit' => ['username'=>'require'], ]; } ?>
view文件内lst.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>后台</title> <style type="text/css"> table{ width: 500px; margin: auto; } </style> </head> <body> <div>我是lst</div> <a href="{:url('admin/add')}">跳转add</a> <table border="1" cellspacing="" cellpadding=""> <tr> <th>ID</th> <th>用户名</th> <th>操作</th> </tr> <!-- 循环数据 --> {volist name="list" id="vo"} <tr> <td>{$vo.id}</td> <td>{$vo.username}</td> <td> <!--跳转管理界面并在url后添加id参数--> <a href="{:url('admin/edit',array('id'=>$vo['id']))}">编辑</a> <!-- thinkphp5 内置判断语句 初始化的管理员(第一位id的值为1) 删除按钮不显示 --> {if condition="$vo['id'] neq 1"} <a href="{:url('admin/del',array('id'=>$vo['id']))}">删除</a> {/if} </td> </tr> {/volist} </table> <!-- 分页器 --> {$list ->render()} </body> </html>
view文件内edit.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>后台</title> <style type="text/css"> h1{ color: #f56868; text-align: center; } </style> </head> <body> <h1>我是edit 修改页面</h1> <!-- action="" 值如果为空 提交到调用方法 --> <form role='form' action="" method="post"> <!--向数据库发送主键--> <input type="hidden" id="id" value="{$admins.id}" /> 管理员用户名:<input type="text" name="username" value="{$admins.username}" /><br /><br /> 管理员密码:<input type="text" name="password" /> <input type="submit" value="提交"/> </form> </body> </html>