ThinkPHP如何实现部门管理功能
创始人
2024-11-25 00:41:37
0次

【一】部门列表展示

分析:

①控制器DeptController.class.php
②方法showList(不要使用list方法,因为list是关键词)
③模板文件:showList.html

下面按步骤编写

①创建方法showList来展示模板

class DeptController extends Controller{
        public function showList(){
            $this->display();
        }
}

②将模板文件showList.html复制到View/Dept下(因为控制器为Dept,方法为showList,所以要一一对应)

③修改静态资源路径

④修该showList方法,获取部门数据。并传递到模板

public function showList(){
            $model = M('dept');//模型实例化
            $data = $model->order('sort asc')->select();//条件查询,升序排列
            $this->assign('data',$data);//变量分配传递到模板
            $this->display();
        }

⑤模板遍历读取数据


    
        id部门所属部门排序备注编辑数据删除数据
    
    
        
            {$vol.id}
            {$vol.name}
            
                
                    顶级部门                
                    二级部门                
            
            {$vol.sort}
            {$vol.remark}
            编辑
            删除
        
    

注意:1. 模板的if判断,必须加空格

顶级部门

          2.加/

【二】部门编辑

分析:

控制器:DeptController.class.php

方法:edit(展示模板】处理提交)

模板:edit.html

下面按步骤编写代码

(1)编写edit方法,实现模板展示

public function edit(){
//展示模板
 $this->display();
}

(2)修改编辑按钮,跳页时带上id

编辑

(3)复制模板文件edit.html到指定位置,Admin/View/Dept/edit.html;修改静态资源路径

(4)修改edit方法,展示原来数据

id:
部门:
所属部门:
排序:
备注:

(5)处理表单提交页面

隐藏域:因为系统限制不能执行批量修改,所以修改时必须指定主键。所以必须添加一个隐藏域,来传递id


    id:
         部门:
    所属部门:             顶级部门                      {$vol.name}              
    排序:
    备注:
    

jquery提交:


    $(document).ready(function(){
        $('button').on('click',function(){
            $('form').submit();//提交表单        })
    })

(6)数据的保存,修改edit方法后的代码

public function edit(){//展示模板或者post请求            if (IS_POST){                $post = I('post.');                // dump($post);die;                $model = M('dept');                //保存操作                $result = $model->save($post);                if ($result !== false) {                    $this->success('修改成功',U('showList'),3);                }else{                    $this->error('修改失败');                }            }else{                //接收id                $id=I('get.id');                //实例化模型                $model = M('dept');                //查询指定记录                $data = $model->find($id);                // 查询全部的部门信息(不包含当前级),同于下拉。因为包含自己所在级别会在递归时陷入死循环?                $info = $model->where('id != '.$id)->select();                //变量分配                $this->assign('data',$data);                $this->assign('info',$info);                //展示模板                $this->display();            }        }

【三】部门删除

分析

控制器:DeptController.class.php

方法:del

模板:删除不需要模板文件,因为删除就是个处理数据过程。和登出一样

说明:有单个删除,也有批量删除。而编辑只能单个编辑,不能批量编辑。

(1)修改模板,添加复选框


    
        >id部门
        所属部门排序备注编辑数据删除
    
    
        
            {$vol.id}
            {$vol.name}
            
                
                    顶级部门
                
                    二级部门
                
            
            {$vol.sort}
            {$vol.remark}
            编辑
            
        
    

(2)点击删除按钮,实现删除

①点击删除,获取复选框的值(jquery实现)。之后到php删除方法


    $(document).ready(function(){
        $('.del').on('click',function(){
            var id = '';
            $.each($('input:checkbox:checked'),function(){
                id += $(this).val()+',';
            });            // 去掉最后的,通过截取字符串获取
            id = id.substring(0,id.length-1);            //带着参数跳转到del方法
            window.location.href = '__CONTROLLER__/del/id/'+id;//删除方法和展示方法的控制器是同级,所以用模板常量__CONTROLLER__        })
    })

②编写del方法,实现删除

//真删除---批量和单个删除
     

 public function del(){
            //接收参数
            $id  = I('get.id');            //模型实例化
            $model = M('dept');            //删除
            $result = $model->delete($id);            //判断结果,删除成功或失败都会跳转到列表页,所以不用加入跳转链接
            if ($result) {                $this->success('删除成功');
            }else{                $this->error('删除失败');
            }
        }

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...