首頁 > 後端開發 > php教程 > 利用Tp刪除欄目

利用Tp刪除欄目

炎欲天舞
發布: 2023-03-14 16:48:01
原創
1852 人瀏覽過

前段時間發表了一個刪除欄目的隨筆,當時實現的功能是刪除一條訊息,這次來實現一下批量刪除欄目。

 

我們需要達到的是這樣一個效果:

#選取批次刪除按鈕後可以選取所有該頁面的欄目,這個是前端頁面的實現,這裡就不多說了,我們直接進入正題:批量刪除的功能。

1.前端頁面這裡也有一個小小的點,就是選擇框的name值應給給他賦值為一個id的數組,value值為該欄目的id。

2.我們在控制器中單獨寫一個批次刪除的方法


public function privilege_bdel(){
        $ids = I('ids');
        $pri = D('privilege');
        $ids = implode(',', $ids);
        if($ids){
            if($pri->delete($ids)){
                $this->success('批量删除栏目成功!',U('Privilege/privilege_lst'));
            }else{
                $this->error('批量删除栏目失败,请重试!');
            }
        }else{
            $this->error('未选中任何内容,请重试!');
        }
    }
登入後複製

這就是我們dump出來options的結果,這條也是我們用來判斷刪除時是單一刪除還是批量刪除的依據,如果options[where][id]是一個數組的話,則說明進行的是批量刪除,否則就是單一刪除。

3.模型中對刪除前建構子的修改


public function _before_delete($options){
        //批量删除
        if(is_array($options['where']['id'])){
            $arr = explode(',', $options['where']['id'][1]);
            $sonpri = array();
            foreach ($arr as $k => $v) {
                $sonpri2 = $this->childid($v);
                $sonpri = array_merge($sonpri,$sonpri2);
            }
            $sonpri = array_unique($sonpri);
            $chilrenids = implode(',', $sonpri);
        }else{//单个删除
            $chilrenids =$this->childid($options['where']['id']);
            $chilrenids = implode(',', $chilrenids);
        }
        if($chilrenids){
            $this->execute("delete from ed_privilege where id in($chilrenids)");
        }
    }
登入後複製

將傳過來的字串轉換為不帶逗號的陣列形式存在$ arr中,建立一個空數組$sonpri,然後foreach遍歷,這裡先找所有的子欄id(會用childid函數),存入$sonpri2數組中,再將$sonpri和$sonpri2合併為一個數組,使用array_merge()函數完成,這樣我們才算是獲取到了所有子欄目的id,但是我們所獲取的id組中,會出現許多重複的id,所以這裡我們還要進行去重的操作,使用array_unique()函數。最後再進行一次陣列的拆分,得到id字串,再進行刪除就大功告成了。

以上是利用Tp刪除欄目的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
不明白XAMPP指定的目錄是什麼目錄?
來自於 1970-01-01 08:00:00
0
0
0
think目錄下沒有Db目錄
來自於 1970-01-01 08:00:00
0
0
0
shell - Linux題目
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板