1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- declare (strict_types = 1);
- namespace app\model\admin;
- use think\Model;
- /**
- * @mixin \think\Model
- */
- class AdverPage extends Model
- {
- /**
- * 获取分类数据
- * @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;
- }
- }
|