where('id',$post['id'])->save($post); return true; } else { unset($post['id']); $post['add_time'] = time(); $bool = $this->insert($post); return $bool; } } public function delAdver($id){ $this->where('pid',$id)->delete(); $this->where('id',$id)->delete(); return true; } /** * 获取分类数据 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function getArMenu($cate_name = '',$pid = '',$show = 0){ $menus = $this ->when(!empty($cate_name),function ($query) use($cate_name){ $query->whereLike('cate_name',"%{$cate_name}%"); }) ->when(!empty($pid),function ($query) use($pid){ $query->where('pid',$pid); }) ->order("sort","desc") ->select(); $data = []; foreach ($menus as $item) { $data[] = $item->getData(); } $menuAr = self::getTree($data); return $menuAr; } /** * 获取树型菜单 * @param $data * @param int $pid * @param int $level * @return array */ public static function getTree($data, $pid = 0, $level = 0) { $childs = self::getChild($data, $pid, $level); array_multisort(array_column($childs, 'sort'), SORT_DESC, $childs); foreach ($childs as $key => $navItem) { $resChild = self::getTree($data, $navItem['id']); if (null != $resChild) { $childs[$key]['children'] = $resChild; } } return $childs; } /** * 获取子菜单 * @param $arr * @param $id * @param $lev * @return array */ private static function getChild(&$arr, $id, $lev) { $child = []; foreach ($arr as $k => $value) { if ($value['pid'] == $id) { $value['level'] = $lev; $child[] = $value; } } return $child; } }