// +---------------------------------------------------------------------- namespace app\model; use think\Model; use think\Request; use think\facade\Cache; /** * @title: 菜单模型 */ class Menu extends Model { /** * @title 显示菜单 */ public function getMenu(Request $request) { $list = []; $current_controller = '/' . str_replace('.', '/', strtolower($request->controller())); $current_url = $current_controller . '/' . strtolower($request->action()); $menu = Cache::get('menu'); if (!$menu) { $res = (new \app\model\Menu())->where('is_menu', 1)->order('sort asc, id asc')->select(); foreach ($res as $key => $item) { $menu[$item['id']] = $item->toArray(); } Cache::set('menu', $menu); } foreach ($menu as $key => $value) { if ($request->isAdmin || in_array($value['id'], array())) { $list[$value['id']] = $value; } } $menuList = list_to_tree($list); return $menuList; } public function getAuthMenuList(){ $list = $this->select(); $data = list_to_tree($list->toArray(), 'id', 'pid'); return $data; } }