个人博客系统用户管理的实现

这是一个关于个人博客系统中用户管理功能的实现,包括用户列表的显示、分页查询、新增和修改用户操作。使用了PHP框架,模型类负责数据查询,控制器处理HTTP请求,视图展示用户界面,并集成了Bootstrap分页。此外,还定义了一个公共函数组件用于返回数据信息的处理,如成功和失败的响应。
摘要由CSDN通过智能技术生成
个人博客系统用户管理的实现
控制器UserController.php代码:

这里我将返回数据信息的操作写成了一个方法,方法写在publicFunction组件中,这样所有的控制器都可以调用

<?php
/**
 * Created by PhpStorm.
 * User: wyq
 * Date: 2021/7/19
 * Time: 16:32
 */

class UserController extends AppController
{
    public $components = array('Session','publicFunction');
    public $helpers =array('Html', 'Form');

    /*
     * 用户列表
     * 获取用户全部信息
     * 渲染页面
     */
    public function index(){

        $page = $_GET['page'] ? $_GET['page'] : 1;
        $limit = 2;
        $count = $this->User->count();
        $pageCount = ceil($count/$limit);
        $params = $this->User->findUser($page,$limit);
        $this->set(array('params'=>$params,'page'=>$page,'pageCount'=>$pageCount));
    }
    /*
     * 新增、修改用户
     *
     */
    public function dell(){
        $params = $_POST;
        $res = $this->User->save($params);
        if ($res){
            //组件类中的方法
            $this->publicFunction->success($res);
        }else{
            //组件类中的方法
            $this->publicFunction->fail();
        }
    }

}
模型User.php代码:

这里模型的代码一个获取用户总量、一个给用户信息做分页查询。

<?php
/**
 * Created by PhpStorm.
 * User: wyq
 * Date: 2021/7/19
 * Time: 16:30
 */

class User extends AppModel
{
        /*
         * 查询user表总数
         */
        public function count(){
            $this->setSource('users');
            $count = $this->find('count');
            return $count;
        }

        /*
         * 分页查询
         * @param int page 当前页数
         * @param int limit 页面展示数据数
         * return array data 展示数据
         */
        public function findUser($page,$limit){
            $this->setSource('users');
            $data = $this->find('all',array(
                'limit' => $limit,
                'page' => $page,
            ));
            return $data;
        }
}
视图user.ctp代码:

这里我再进一步完善该系统的详细功能,我这里整合了boostrap分页,这是和前面的页面实现有一点不同的地方,下面的链接有详细解读该代码


<div style="margin-bottom: 5px">
    <span class="layui-breadcrumb">
          <a href="">首页</a>
          <a><cite>用户管理</cite></a>
    </span>
</div>


<button type="button" onclick="add()" class="layui-btn" data-toggle="modal" data-target="#myModal" >新增用户</button>
<table class="layui-table">
        <colgroup>
            <col width="150">
            <col width="200">
            <col>
        </colgroup>
        <tr>
            <th>编号</th>
            <th>用户名</th>
            <th>密码</th>
            <th>手机号码</th>
            <th>邮箱</th>
            <th>昵称</th>
            <th>用户签名</th>
            <th>操作</th>
        </tr>
        <?php foreach($params as $v): ?>
            <tr>
                <td><?=$v['User']['id']?></td>
                <td><?=$v['User']['username']?></td>
                <td><?=$v['User']['password']?></td>
                <td><?=$v['User']['phone']?></td>
                <td><?=$v['User']['email']?></td>
                <td><?=$v['User']['nickname']?></td>
                <td><?=$v['User']['sign']?></td>
                <td>
                    <i class="layui-icon layui-icon-edit" data-toggle="modal" data-target="#myModal" onclick="add(<?=$v['User']['id']?>,'<?=$v['User']['username']?>', '<?=$v['User']['password']?>', '<?=$v['User']['phone']?>', '<?=$v['User']['email']?>', '<?=$v['User']['nickname']?>', '<?=$v['User']['sign']?>' )"></i>
                    <i class="layui-icon layui-icon-subtraction" onclick="del()"><a></a></i>
                </td>
            </tr>
        <?php endforeach; ?>
    </table>
	<!--分页-->
        <nav aria-label="Page navigation">
            <ul class="pagination">
                <li <?php if($page == 1 || !$page): ?> class="disabled" <?php endif; ?> >
                    <a <?php if($page == 1 || !$page): ?>  οnclick="return false" <?php endif; ?> href="/user/index?page=<?= $page-1?>"  aria-label="Previous">
                        <span aria-hidden="true"  >&laquo;</span>
                    </a>
                </li>
                    <?php for($i=0;$i<$pageCount;$i++): ?>
                        <li <?php if($page == $i+1): ?> class="active" <?php endif; ?>><a href="/user/index?page=<?= $i+1 ?>"><?=$i+1?></a></li>
                    <?php endfor; ?>
                <li <?php if($page == $pageCount): ?> class="disabled" <?php endif; ?> >
                    <a <?php if($page == $pageCount): ?> οnclick="return false" <?php endif; ?>  href="/user/index?page=<?= $page+1?>" aria-label="Next">
                        <span aria-hidden="true">&raquo;</span>
                    </a>
                </li>
            </ul>
        </nav>

<div class="modal fade" id="myModal"  data-backdrop="false" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog modal-lg" role="document" >
        <div class="modal-content" >
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" onclick="close1()" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="myModalLabel">用户新增</h4>
            </div>
            <div class="modal-body">
                <div class="layui-form">

                    <div class="layui-form-item">
                        <label class="layui-form-label" >用户名</label>
                        <div class="layui-input-block">
                            <input type="hidden" id="id"  class="layui-input">
                            <input type="text" id="username" placeholder="请输入管理员名" class="layui-input">
                        </div>
                    </div>

                    <div class="layui-form-item">
                        <label class="layui-form-label" >邮箱</label>
                        <div class="layui-input-block">
                            <input type="text" id="email" placeholder="请输入邮箱地址" class="layui-input">
                        </div>
                    </div>


                    <div class="layui-form-item">
                        <label class="layui-form-label" >手机号码</label>
                        <div class="layui-input-block">
                            <input type="text" id="phone" placeholder="请输入手机号码" class="layui-input">
                        </div>
                    </div>


                    <div class="layui-form-item">
                        <label class="layui-form-label" >签名</label>
                        <div class="layui-input-block">
                            <input type="text" id="nickname" placeholder="请输入用户昵称" class="layui-input">
                        </div>
                    </div>


                    <div class="layui-form-item">
                        <label class="layui-form-label" >签名</label>
                        <div class="layui-input-block">
                            <input type="text" id="sign" placeholder="请输入用户签名" class="layui-input">
                        </div>
                    </div>

                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" onclick="close1()"  data-dismiss="modal">返回</button>
                <button type="button" id="ajax_submit" class="btn btn-primary">提交</button>
            </div>
        </div>
    </div>
</div>

<script>
    layui.use('layer',function () {
        var layer = layui.layer;
        $('#ajax_submit').click(function () {
            var data = {
                'id' :  $('#id').val(),
                'username' :  $('#username').val(),
                'phone' :  $('#phone').val(),
                'email' : $('#email').val(),
                'nickname' : $('#nickname').val(),
                'sign' : $('#sign').val()
            };
            $.ajax({
                'url':'/user/dell',
                'data': data,
                'type':'post',
                'dataType':'json',
                'success':function (res) {
                    if (res.code == 200){
                        layer.msg('修改成功!' , {time: 800, icon:6});
                    } else {
                        layer.msg('修改失败!' , {time: 800, icon:5});
                    }
                    setTimeout(function () {
                        window.location.reload();
                    },800)
                }
            })
        })
    })

    function add(id='',username='',password='',phone='',email='',nickname='',sign=''){
        $('#id').val(id);
        $('#username').val(username);
        $('#phone').val(phone);
        $('#email').val(email);
        $('#nickname').val(nickname);
        $('#sign').val(sign);
        layui.use('layer', function(){
            var layer = layui.layer;
        });
    }
</script>

组件publicFunction.php函数
	/*
     * 通用响应
     * @params int code 响应码
     * @params string $msg 响应描述
     * @params string $data 响应数据
     */
    function response($code = 200 , $msg="success" , $data=array()){
        $res = array('code'=>$code,'msg'=>$msg,'data'=>$data);
        echo json_encode($res);die;
    }

    /*
     * 成功响应
     * @params string $data 响应数据
     * @params string $msg 响应描述
     * @params string $code 响应码
     */
    function success($data=array(),$msg="success",$code = 200){
        $this->response($code,$msg,$data);
    }

    /*
     * 失败响应
     * @params string $code 响应码
     * @params string $msg 响应描述
     */
    function fail($code = 500 ,$msg="fail"){
        $this->response($code,$msg);
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值