addClass('nav nav-pills nav-sidebar flex-column nav-flat') ->setWrapperTag('ul') ->setAttributes([ 'data-widget' => 'treeview', 'role' => 'menu', 'data-accordion' => 'false' ]); $menu->html(''); // Ambil data menu utama $user = Auth::guard('admin')->user(); $role = $user->roles->first(); $currentRoleId = $role ? $role->id : null; $menus = DB::select(" SELECT m.*, rm.menu_id AS assigned_menu_id FROM menus m LEFT JOIN role_menu rm ON m.id = rm.menu_id WHERE m.parent_id IS NULL AND rm.role_id = '".$currentRoleId."' ORDER BY m.id "); foreach ($menus as $item) { // Ambil submenu jika ada $children = DB::select(" SELECT m.*, rm.menu_id AS assigned_menu_id FROM menus m LEFT JOIN role_menu rm ON m.id = rm.menu_id WHERE m.parent_id = '".$item->id."' AND rm.role_id = '".$currentRoleId."' ORDER BY m.id "); if (isset($children)) { // Menu dengan child $submenu = Menu::new()->addClass('nav nav-treeview'); foreach ($children as $child) { $submenu->html( '' ); } $menu->html( '' ); } else { // Menu tanpa child $menu->html( '' ); } } view()->share('menu', $menu->render()); return $next($request); } }