夺命雷公狗---Thinkphp----7之栏目配合Model的增删改查

我们首先来写一个查:

 

public function lists(){
        $type = M('Type')->select();
        $this -> assign('type',$type);
        $this -> display();
    }

 

然后到模板页里让它用volist进行正常的显示:

 

 

      <volist name="type" id="vo">
      <tr onMouseOut="this.style.backgroundColor='#ffffff'" onMouseOver="this.style.backgroundColor='#edf5ff'">
        <td align="center" valign="middle" class="borderright borderbottom">{$vo['id']}</td>
        <td align="center" valign="middle" class="borderright borderbottom">{$vo['typename']}</td>
        <td align="center" valign="middle" class="borderbottom">
            <a href="__CONTROLLER__/edit/id/{$vo['id']}" target="mainFrame" onFocus="this.blur()" class="add">编辑</a>
            <span class="gray">&nbsp;|&nbsp;</span>
        <a href="__CONTROLLER__/del/id/{$vo['id']}" target="mainFrame" onclick="return confirm('您确定要删除');" onFocus="this.blur()" class="add">删除</a>
        </td>
      </tr>
      </volist>

 

 

下一步就开始写他的增加了,增加时候如果需要用到Model对提交过来的数据进行验证,那么就必须使用D来对她进行验证即可,控制器如下所示:

 

    public function add(){
        if(IS_POST){
            $data['typename'] = $_POST['typename'];
            $mod = D('Type');
            if($mod->create($data)){
                if($mod->add($data)){
                    $this -> success('添加栏目成功',U('Type/lists'));
                }else{
                    $this -> error('添加栏目失败');
                }
            }else{
                $this -> error($mod->getError());
            }
        }
        
        $this -> display();
    }

 

 

 

 

这里写好了然后就开始写他的Model层了,这里主要是让他不能为空和不能重复出现即可:

 

<?php
    namespace Admin\Model;
    use Think\Model;
    class TypeModel extends Model{
        protected $_validate = array(
            //array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
            array('typename','require','栏目名不能为空!'), //默认情况下用正则进行验证
            array('typename','','栏目名已经存在!',0,'unique',1) // 在新增的时候验证name字段是否唯一
        );
    }

 

模版代码如下所示:

 

 

添加这里其实是完全可以通过查询手册即可知道怎么写的了,查询方法如下所示:

 

 

这里几乎是完全记录着如何可以实现的。。。

 

下一步就到他的改了,这里其实更加的简单了,直接在列表页里面带多一个 id 过去问题即可解决,如下所示:

 

下一步就到开始写他的控制器了,不过要先将数接收到的id去获取到指定的数据,然后再通过接收到的表单进行修改,代码如下所示:

 

    public function edit(){
        $id = I('id');
        if(IS_POST){
            if(!empty($_POST['typename'])){
                $data['typename'] = $_POST['typename'];
                $data['id'] = I('id');
                $mod = D('Type');
                if($mod -> create($data,1)){  //这里的这个1主要作用是在编辑时候验证
                    if($mod->save()){
                        $this -> success('修改栏目成功',U('Type/lists'));
                    }else{
                        $this -> error('修改栏目失败');
                    }
                }else{
                    $this -> error($mod->getError());
                }
            }else{
                $this -> error('修改栏目失败');
            }
        }
        $mod = M('Type')->find($id);
        $this -> assign('type',$mod);
        $this-> display();
    }

 

编辑页模版如下所示:

 

修改这个其实也是最容易的这个了,只要在列表页里面加一个id让他带到del方法即可,如下所示:

 

我们在控制器接收他发送过来的id让后对她进行删除处理即可:

 

 

    public function del(){
        $id = I('id');
        if(M('Type')->delete($id)){
            $this -> success('删除栏目成功',U('Type/lists'));
        }else{
            $this -> error('删除栏目失败');
        }
    }

 

 

 

这样下来我们一套的增删改查即可完成

posted @ 2016-04-17 17:32  夺命雷公狗  阅读(286)  评论(0编辑  收藏  举报