123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <?php
- declare (strict_types = 1);
- namespace app\model\system;
- use think\Model;
- /**
- * @mixin \think\Model
- */
- class AdverPage extends Model
- {
- /**
- * 保存分类
- * @param $post
- * @return bool
- */
- public function savePage($post){
- if(!empty($post['id'])) {
- $this->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;
- }
- }
|