您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關利用ThinkPHP怎么對欄目進行刪除,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
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('未選中任何內容,請重試!'); } }
這里要將傳過來的id數組轉化為以逗號分隔的字符串如:1,2,3,這樣可以直接進行delete操作。
這就是我們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字符串,再進行刪除就大功告成了。
以上就是利用ThinkPHP怎么對欄目進行刪除,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。