美文网首页ThinkPHP微信PHP开发
微信实验十二、ThinkPHP5.0单页浏览、增加、修改、删除用

微信实验十二、ThinkPHP5.0单页浏览、增加、修改、删除用

作者: chenxhjeo | 来源:发表于2017-04-27 20:16 被阅读268次

    一、实验目的

    1、掌握ThinkPHP5.0用户浏览、增加、修改和删除功能。

    二、实验内容

    1、建立ThinkPHP5.0用户浏览页面,且包括删除功能。

    2、建立ThinkPHP5.0用户增加和修改页面。

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

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

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

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

    初建日期:2017.04.26

    三、实验步骤及过程

    常用模块具有的功能包括:浏览、删除、修改、增加等功能,我们在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()方法完成用户信息删除,代码如下:

    /**

    *单页控制器

    */

    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,公众号名称为“豆豆咨询”。扫描以下二维码,关注“豆豆咨询”

    技术QQ群名称:豆豆咨询,群号:625686304;微信公众号名称:豆豆咨询,微信公众号:douAsk

    彩蛋号:1209。

    相关文章

      网友评论

        本文标题:微信实验十二、ThinkPHP5.0单页浏览、增加、修改、删除用

        本文链接:https://www.haomeiwen.com/subject/ezunzttx.html