zoukankan      html  css  js  c++  java
  • 夺命雷公狗---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 AdminModel;
        use ThinkModel;
        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('删除栏目失败');
            }
        }

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

  • 相关阅读:
    量化投资:第3节 滑点策略与交易手续费
    量化投资:第2节 择时策略的优化
    量化投资: 第1节 择时策略的开发
    一步一步,完成sparkMLlib对日志文件的处理(1)
    JAVA接口与抽象类区别
    HDU1877 又一版 A+B
    HDU4548 美素数
    超级楼梯 HDU2041
    HDU2013 蟠桃记【递推】
    HDU1262 寻找素数对
  • 原文地址:https://www.cnblogs.com/leigood/p/5401526.html
Copyright © 2011-2022 走看看