##一、实验目的   1、掌握ThinkPHP5.0用户单页浏览、增加、修改和删除功能。 ##二、实验内容   1、建立ThinkPHP5.0用户单页浏览页面,且包括删除功能。   2、建立ThinkPHP5.0用户增加和修改页面。 ##三、实验步骤及过程   常用模块具有的功能包括:浏览、删除、修改、增加等功能,我们在ThinkPHP5.0时候,应灵活掌握这些基本功能,以下我们将介绍如何实现这些功能。   1、创建浏览、增加、修改、删除界面   用户登录后,进入(http://127.0.0.1/noneCms/public/index.php/weixin/index/index.html)主界面,单击公众号用户,则进入了微信用户信息管理界面,包括用户信息浏览、删除、增加、修改几个功能,如图所示。    ![](https://box.kancloud.cn/9972a169e9e306ec7ef7ba0300287459_569x329.jpg)    ![](https://box.kancloud.cn/32c09e04995035723b0bef674f01d588_569x350.jpg)    ![](https://box.kancloud.cn/c6b90a57f0975ac7977f1f9a351e5ee1_548x378.jpg)    ![](https://box.kancloud.cn/9b04b746ccd38f730e85831026c812a0_451x155.jpg)   2、关键代码解析   (http://127.0.0.1/noneCms/public/index.php/weixin/index/index.html)主界面。用户通过登录页面(http://127.0.0.1/noneCms/public/index.php/weixin/login/index)进入后台管理模块,(http://127.0.0.1/noneCms/public/index.php/weixin/index/index)为用户登录之后后台管理主页面。然后,用户单击“公众号用户”,则进入用户管理界面,即(http://127.0.0.1/noneCms/public/index.php/weixin/users/index)。在该界面可以操作用户信息,包括浏览、添加、删除、修改等操作。   Users为用户管理控制模块,其文件为Users.php,即通过(http://127.0.0.1/noneCms/public/index.php/weixin/users/index)调用weixin模块的users控制器中的index方法进入用户浏览页面,用户登录之后主页面为(http://127.0.0.1/noneCms/public/index.php/weixin/index/index)。   1)Users.php文件   Users.php是users控制器文件,其中index()方法显示用户管理页面,add()方法完成用户信息增加,edit()方法完成用户信息修改,dele()方法完成用户信息删除,代码如下: ~~~ <?php /** * 单页控制器 */ namespace app\weixin\controller; use app\weixin\model\Category; use think\Config; use think\Db; use think\Loader; class Users extends Common { public function index() { $list = Db::name('user')->field('username,logintime,id,loginip,email,islock,phone')->where('islock','neq',3)->select(); //$list = Db::name('user')->field('nickname,last_login_time,id,last_login_ip,email,status,phone')->where('status','eq',1)->select(); $this->assign('list', $list); return $this->fetch(); } /* * 添加用户 */ public function add() { if (request()->isPost()) { //修改处理 $params = input('post.'); $data = [ 'username' => $params['user_name'], 'password' => $params['password'], 'email' => $params['email'], 'phone' => $params['phone'], 'islock' => $params['islock'], 'repassword' => $params['repassword'] ]; //验证规则 $validate = Loader::validate('UsersAdd'); if (isset($params['id'])) { //更新操作 if($params['old_password']){ $info = Db::name('user')->field('password,encrypt')->find($params['id']); $password = get_password($params['old_password'],$info['encrypt']); if($info['password'] != $password){ exit(json_encode(['status' => 0, 'msg' => '原密码不正确', 'url' => ''])); } } if(!$validate->scene('edit')->check($data)){ $error = $validate->getError(); exit(json_encode(['status' => 0, 'msg' => $error, 'url' => ''])); } $data['encrypt'] = get_randomstr();//6位hash值 $data['password'] = get_password($data['password'],$data['encrypt']); unset($data['repassword']); $flag = Db::name('user')->where('id',$params['id'])->update($data); if ($flag) { exit(json_encode(['status' => 1, 'msg' => '修改成功', 'url' => url('users/index')])); } else { exit(json_encode(['status' => 0, 'msg' => '修改失败,请稍后重试', 'url' => ''])); } }else{ //新增 if(!$validate->check($data)){ $error = $validate->getError(); exit(json_encode(['status' => 0, 'msg' => $error, 'url' => ''])); } unset($data['repassword']); $data['encrypt'] = get_randomstr();//6位hash值 $data['password'] = get_password($data['password'],$data['encrypt']); $data['logintime'] = time(); $data['createtime'] = time(); $data['loginip'] = request()->ip(); $data['username'] = $params['user_name']; $data['phone'] = $params['phone']; $flag=Db::name('user')->insert($data); if ($flag) { exit(json_encode(['status' => 1, 'msg' => '添加成功', 'url' => url('users/index')])); } else { exit(json_encode(['status' => 0, 'msg' => '添加失败,请稍后重试', 'url' => ''])); } } } else { return $this->fetch(); } } /** * 修改用户信息 */ public function edit($id) { $data = Db::name('user')->find($id); $this->assign('data', $data); return $this->fetch(); } /** * 删除用户信息 */ public function dele() { $id = input('param.id/d',0); $flag = Db::name('user')->where(['id' => $id])->update(['islock' => 3]); if ($flag) { echo '删除成功'; } else { echo '删除失败'; } } } ~~~   2)validate/UsersAdd.php验证文件   该文件辅助users控制器的add()和edit()方法验证用户输入的数据,在Users.php文件中采用代码$validate = Loader::validate('UsersAdd');调用UsersAdd验证器验证。   UsersAdd.php文件如下所示。 ~~~ class UsersAdd extends Validate { protected $rule = [ 'username' => 'require|max:25|min:4', 'email' => 'email', 'password' => 'require|max:25|min:6', 'repassword'=>'require|confirm:password' ]; protected $message = [ 'username.require' => '用户名必须', 'username.max' => '用户名最多不能超过25个字符', 'username.min' => '用户名最少4个字符', 'password.require' => '密码必须', 'password.min' => '密码长度至少六位', 'email' => '邮箱格式错误', //'repassword.require' => '确认密码必须', 'repassword.confirm' => '两次密码必须一致' ]; /** * 验证场景 */ protected $scene = [ 'edit' => ['name','repassword'=>'confirm:password'], ]; } ~~~ ##四、技术服务   1、如果有疑问或者需要帮助,请加入QQ群(群名称:豆豆咨询,群号:625686304);或者公众号douAsk,公众号名称为“豆豆咨询”。扫描以下二维码,关注“豆豆咨询”。 ![](https://box.kancloud.cn/541e0b698446c38ba398b183c361fe0d_430x430.jpg)   技术QQ群名称:豆豆咨询,群号:625686304   微信公众号名称:豆豆咨询,微信公众号:douAsk   彩蛋号:1209(在公众号里输入彩蛋号即可得到源码)。