溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP如何實現部門管理功能

發(fā)布時間:2021-01-27 10:50:25 來源:億速云 閱讀:172 作者:小新 欄目:編程語言

小編給大家分享一下ThinkPHP如何實現部門管理功能,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

【一】部門列表展示

分析:

①控制器DeptController.class.php
②方法showList(不要使用list方法,因為list是關鍵詞)
③模板文件:showList.html

下面按步驟編寫

①創(chuàng)建方法showList來展示模板

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

②將模板文件showList.html復制到View/Dept下(因為控制器為Dept,方法為showList,所以要一一對應)

③修改靜態(tài)資源路徑

④修該showList方法,獲取部門數據。并傳遞到模板

public function showList(){
            $model = M('dept');//模型實例化
            $data = $model->order('sort asc')->select();//條件查詢,升序排列
            $this->assign('data',$data);//變量分配傳遞到模板
            $this->display();
        }

⑤模板遍歷讀取數據

<table border="1" cellspacing="0">
    <tr>
        <td>id</td><td>部門</td><td>所屬部門</td><td>排序</td><td>備注</td><td>編輯數據</td><td>刪除數據</td>
    </tr>
    <volist name='data' id='vol'>
        <tr>
            <td class="num">{$vol.id}</td>
            <td class="name">{$vol.name}</td>
            <td class="procress">
                <if condition="$vol.pid == 0">
                    頂級部門                <else/>
                    二級部門                </if>
            </td>
            <td class="node">{$vol.sort}</td>
            <td class="time">{$vol.remark}</td>
            <td><a href="javascript:;">編輯</a></td>
            <td><a href="javascript:;">刪除</a></td>
        </tr>
    </volist></table>

注意:1. 模板的if判斷,必須加空格

<if condition="$vol.pid == 0">頂級部門</if>

          2.<else />加/

【二】部門編輯

分析:

控制器:DeptController.class.php

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

模板:edit.html

下面按步驟編寫代碼

(1)編寫edit方法,實現模板展示

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

(2)修改編輯按鈕,跳頁時帶上id

<td><a href="__CONTROLLER__/edit/id/{$vol.id}">編輯</a></td>

(3)復制模板文件edit.html到指定位置,Admin/View/Dept/edit.html;修改靜態(tài)資源路徑

(4)修改edit方法,展示原來數據

id:<input type="text" name="id" readonly="readonly" value="{$data.id}"><br/>部門:<input type="text" name="name" value="{$data.name}"><br/>所屬部門:<select>
    <option value="0">頂級部門</option>
    <volist name="info" id="vol">
        <option value="{$vol.id}">{$vol.name}</option>
    </volist></select><br/>排序:<input type="text" name="sort" value="{$data.sort}"><br/>備注:<input type="text" name="id" value="{$data.remark}"><br/>

(5)處理表單提交頁面

隱藏域:因為系統(tǒng)限制不能執(zhí)行批量修改,所以修改時必須指定主鍵。所以必須添加一個隱藏域,來傳遞id

<form action="" method="post">
    id:<input type="hidden" name="id" value="{$data.id}"><br/>
    <!-- 或者$Think.get.id -->
    部門:<input type="text" name="name" value="{$data.name}"><br/>
    所屬部門:    <select name="pid">
        <option value="0">頂級部門</option>
        <volist name="info" id="vol">
            <option value="{$vol.id}">{$vol.name}</option>
        </volist>
    </select><br/>
    排序:<input type="text" name="sort" value="{$data.sort}"><br/>
    備注:<input type="text" name="remark" value="{$data.remark}"><br/>
    <button>提交</button></form>

jquery提交:

<script type="text/javascript">
    $(document).ready(function(){
        $('button').on('click',function(){
            $('form').submit();//提交表單        })
    })</script>

(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);                // 查詢全部的部門信息(不包含當前級),同于下拉。因為包含自己所在級別會在遞歸時陷入死循環(huán)?                $info = $model->where('id != '.$id)->select();                //變量分配                $this->assign('data',$data);                $this->assign('info',$info);                //展示模板                $this->display();            }        }

【三】部門刪除

分析

控制器:DeptController.class.php

方法:del

模板:刪除不需要模板文件,因為刪除就是個處理數據過程。和登出一樣

說明:有單個刪除,也有批量刪除。而編輯只能單個編輯,不能批量編輯。

(1)修改模板,添加復選框

<table border="1" cellspacing="0">
    <tr>
        </td>><td>id</td><td>部門</td>
        <td>所屬部門</td><td>排序</td><td>備注</td><td>編輯數據</td><td><a href="javascript:;" class="del">刪除</a</td>
    </tr>
    <volist name='data' id='vol'>
        <tr>
            <td class="num">{$vol.id}</td>
            <td class="name">{$vol.name}</td>
            <td class="procress">
                <if condition="$vol.pid == 0">
                    頂級部門
                <else/>
                    二級部門
                </if>
            </td>
            <td class="node">{$vol.sort}</td>
            <td class="time">{$vol.remark}</td>
            <td><a href="__CONTROLLER__/edit/id/{$vol.id}">編輯</a></td>
            <td><input type="checkbox" class="deptid" value="{$vol.id}"></td>
        </tr>
    </volist>
</table>

(2)點擊刪除按鈕,實現刪除

①點擊刪除,獲取復選框的值(jquery實現)。之后到php刪除方法

<script type="text/javascript">
    $(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__        })
    })</script>

②編寫del方法,實現刪除

//真刪除---批量和單個刪除
     

 public function del(){
            //接收參數
            $id  = I('get.id');            //模型實例化
            $model = M('dept');            //刪除
            $result = $model->delete($id);            //判斷結果,刪除成功或失敗都會跳轉到列表頁,所以不用加入跳轉鏈接
            if ($result) {                $this->success('刪除成功');
            }else{                $this->error('刪除失敗');
            }
        }

看完了這篇文章,相信你對“ThinkPHP如何實現部門管理功能”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI