php thinkphp 複用無限極分類,寫入到資料庫中
阿新 • • 發佈:2020-08-19
調取出相關的分類,複製一遍,寫入到資料庫中
從後臺調取出指定的樹狀分類,結構不變,複製一遍,寫入到資料庫中
1、調取出的樹狀分類,id和pid有關聯邏輯
2、function.php 方法
/* * === 複用相關N級分類 === * $list 一維陣列型別,id和pid需有邏輯關聯 * $root=0 意思是pid等於零代表一級結構 * $cp_id 產品id,我需要更換一下產品id * * 開發時間: * 2020-08-18 * * 開發者: * 遇事穩坐釣魚臺 https://www.cnblogs.com/zc290987034 * */ function tree_bom_fl_fuyong($list,$root=0,$cp_id){ if(!$cp_id)return 0; $packData = array(); $sql = M('scm_bom_fl'); foreach ($list as $k => $v) { $packData[$v['id']] = $v;//將所有的分類id作為陣列key //先將所有資料寫到資料庫,pid統一預設的是零0 $fl_1['paixu'] = $v['paixu']; $fl_1['chanpin_id'] = $cp_id; $fl_1['title'] = $v['title']; $fl_1_id = $sql->add($fl_1); $packData[$v['id']]['aid'] = $fl_1_id;//將每一個新增的id放到統一指定的欄位中 } //利用引用,將每個分類新增到父類child陣列中,這樣一次遍歷即可形成樹形結構。 foreach ($packData as $key => $val) { if ($val['pid'] != $root) {//代表跟節點 $shangji_aid = $packData[$val['pid']]['aid'];//找出他上級的aid $aid = $val['aid'];//當前要修改的aid $sql->where(array('id'=>$aid))->setField('pid',$shangji_aid); } } return 1; }
3、效果