Sian 发表于 2016-3-10 11:46:33

4、使用CRUD实现简单用户数据管理

1、先看效果


2、基本设置思路
2.1、首先创建一个数据表user,包含基本字段:username,password,email等;
2.2、在Home目录下创建一个控制器UserController.class.php,所有的逻辑处理都在这个控制器里通过不同的方法实现;
2.3、对应三个页面准备在在View目录下的User目录下创建相相应的视图文件;
3、控制器实现逻辑
3.1、index方法默认加载所有数据进行展示,即在视图中创建一个index.html的模板        // 默认首页显示所有数据
        public function index(){
                $m = M('User');
                $array = $m->select();
                // 查询所有数据传给index.html模板
                $this->assign('data', $array);
                $this->display();
        }3.2、模板文件index.html绘出基本表格,再通过volist标签将数据遍历出来<html>
<head>
        <script>
                function jump(){
                        window.location = "__URL__/add";
                }
        </script>
</head>
<body>
        <table border="1" width=80% align="center">
                <tr>
                        <th>id</th><th>username</th><th>password</th><th>email</th><th>操作</th>
                        <volist name="data" id="vo">
                                <tr align="center">
                                        <td><{$vo.id}></td>
                                        <td><{$vo.username}></td>
                                        <td><{$vo.password}></td>
                                        <td><{$vo.email}></td>
                                        <td>
                                                <a href="__URL__/del/id/<{$vo.id}>">删除</a>|
                                                <a href="__URL__/modify/id/<{$vo.id}>">修改</a>
                                        </td>
                                </tr>
                        </volist>
                </tr>
        </table><br/>
        <center>
        <button>添加用户</button>
        </center>
</body>
</html>3.3、增加新用户,通过首页一个按钮事件,指向控制器的add方法,add方法的基本实现加载add.html模板显示新增页面        // 1.1、视图方法,显示添加页面
        public function add(){
                // 加载add.html模板
                $this->display();
        }
        // 1.2、逻辑方法,添加某条数据到数据库
        public function create(){
                $m = M('User');
                // 获取post传过来的数据,通过add方法添加到数据库
                $data['id']=$_POST['id'];
                $data['username']=$_POST['username'];
                $data['password']=$_POST['password'];
                $data['email']=$_POST['email'];
                $r = $m->add($data);
                // 返回结果为添加成功的自增主键值(如果有自增主键的话优先)或影响行数(即返回1)
                if ($r > 0){
                        $this->success('数据添加成功!', 'index');
                }else{
                        $this->error("添加失败!");
                }
        }3.4、新增页面也是一个表单,表单提交到控制器的create方法,create方法将从表单获取到的数据插入数据库,成功后跳回到首页<html>
        <body>
                <form action="__URL__/create" method="post">
                        username:<input type="text" name="username" /><br/>
                        password:<input type="password" name="password" /><br/>
                        email:<input type="text" name="email" /><br/>
                        <input type="submit" value="添加新用户"/>
                </form>
        </body>
</html>3.5、删除方法很简单,通过将当前行的id发送到控制器的del方法中,del直接通过id删除数据库中对应的条目        // 2、删除方法,根据id删除某条记录
        public function del(){
                $m = M('User');
                $id = $_GET['id'];
                // 获取需要删除的数据id号,调用delete方法删除,返回影响行数,如果大于0则删除成功
                $count = $m->delete($id);
                if ($count>0){
                        $this->success("数据删除成功");
                }else{
                        $this->error("数据删除失败");
                }
        }3.6、修改和新增功能类似,先跳转到一个修改页面将内容全部展示出来,然后提交到一个控制器的update方法进行修改        // 3.1、视图方法,显示修改页面
        public function modify(){
                $m = M('User');
                $id = $_GET['id'];
                // 根据传过来的id查询相关数据并赋值给modify.html模板
                $array = $m->where("id=$id")->find();
                // 显示修改页面
                $this->assign('data', $array);
                $this->display();
        }
        // 3.2、逻辑方法,更新获取到的某条记录
        public function update(){
                $m = M('User');
                // 获取post传过来的数据,通过save方法更新到数据库,类似create
                $data['id']=$_POST['id'];
                $data['username']=$_POST['username'];
                $data['password']=$_POST['password'];
                $data['email']=$_POST['email'];
                $r = $m->save($data);
                if ($r > 0){
                        $this->success('数据修改成功!', 'index');
                }else{
                        $this->error("数据修改失败!");
                }
        }3.7、相关模板文件也是通过表格展示数据,表单提交<html>
        <body>
                <form action="__URL__/update" method="post">
                        <input type="hidden" name="id" value="<{$data.id}>" />
                        username:<input type="text" name="username" value="<{$data.username}>"/><br/>
                        password:<input type="password" name="password" value="<{$data.password}>"/><br/>
                        email:<input type="text" name="email" value="<{$data.email}>"/><br/>
                        <input type="submit" value="提交修改" />
                </form>
        </body>
</html>4、源代码下载:**** Hidden Message *****
页: [1]
查看完整版本: 4、使用CRUD实现简单用户数据管理