微信实验十二、ThinkPHP5.0单页浏览、增加、修改、删除用户及源码下载

(>>>>在公众号中输入文章最后彩蛋即可获取源代码)

开源项目:https://github.com/chenxhjeo,个人博客:http://blog.csdn.net/u013487761

技术QQ群名称:豆豆咨询,群号:625686304

微信公众号名称:豆豆咨询,微信公众号:douAsk

初建日期:2017.04.26

一、实验目的 

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主界面,单击公众号用户,则进入了微信用户信息管理界面,包括用户信息浏览、删除、增加、修改几个功能,如图所示。


2、关键代码解析

用户通过登录页面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();//6hash
                 $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();//6hash
                $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,公众号名称为“豆豆咨询”。 扫描以下二维码,关注“豆豆咨询”

技术QQ群名称:豆豆咨询,群号:625686304

微信公众号名称:豆豆咨询,微信公众号:douAsk

彩蛋号:1209


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qlchenxh

机会是创造出来的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值