顶部菜单超过10个,其他账号分配3个,只显示一个

超级管理员有10+模块
另一个账号只分配3个模块,但只显示一个
QQ截图20180613150042.png

QQ截图20180613150050.png

 
已邀请:

qq330362495

赞同来自:

    /**
* 获取顶部节点
* @param string $max 最多返回多少个
* @param string $cache_tag 缓存标签
* @author 蔡伟明 <314013107@qq.com>
* @return array
*/
public static function getTopMenu($max = '', $cache_tag = '')
{
$cache_tag .= '_role_'.session('user_auth.role');
$menus = cache($cache_tag);
if (!$menus) {
// 非开发模式,只显示可以显示的菜单
if (config('develop_mode') == 0) {
$map['online_hide'] = 0;
}
$map['status'] = 1;
$map['pid'] = 0;
$menus = self::where($map)->order('sort,id')->limit($max)->column('id,pid,module,title,url_value,url_type,url_target,icon,params');
foreach ($menus as $key => &$menu) {
// 没有访问权限的节点不显示
if (!RoleModel::checkAuth($menu['id'])) {
unset($menus[$key]);
continue;
}
if ($menu['url_value'] != '' && ($menu['url_type'] == 'module_admin' || $menu['url_type'] == 'module_home')) {
$url = explode('/', $menu['url_value']);
$menu['controller'] = $url[1];
$menu['action'] = $url[2];
$menu['url_value'] = $menu['url_type'] == 'module_admin' ? admin_url($menu['url_value'], $menu['params']) : home_url($menu['url_value'], $menu['params']);
}
}
// 非开发模式,缓存菜单
if (config('develop_mode') == 0) {
cache($cache_tag, $menus);
}
}
return $menus;
}

qq330362495

赞同来自:

这边是先获取max个菜单
再去判断权限
前10个菜单
只有1个有权限
但是第11个 第12个是有权限的就无法显示了
 
应该要先判断权限
 

qq330362495

赞同来自:

    public static function getTopMenu($max = '', $cache_tag = '')
{
$cache_tag .= '_role_'.session('user_auth.role');
$menus = cache($cache_tag);
if (!$menus) {
// 非开发模式,只显示可以显示的菜单
if (config('develop_mode') == 0) {
$map['online_hide'] = 0;
}
$map['status'] = 1;
$map['pid'] = 0;
$menus_list = self::where($map)->order('sort,id')->column('id,pid,module,title,url_value,url_type,url_target,icon,params');
$menus = [];
$i = 0;
foreach ($menus_list as $key => &$menu) {
if($i >= $max) break;
// 没有访问权限的节点不显示
if (!RoleModel::checkAuth($menu['id'])) continue;

if ($menu['url_value'] != '' && ($menu['url_type'] == 'module_admin' || $menu['url_type'] == 'module_home')) {
$url = explode('/', $menu['url_value']);
$menu['controller'] = $url[1];
$menu['action'] = $url[2];
$menu['url_value'] = $menu['url_type'] == 'module_admin' ? admin_url($menu['url_value'], $menu['params']) : home_url($menu['url_value'], $menu['params']);
}
$menus[$key] = $menu;
++$i;
}
// 非开发模式,缓存菜单
if (config('develop_mode') == 0) {
cache($cache_tag, $menus);
}
}
return $menus;
}

dolphinphp

赞同来自:

非常感谢您对反馈。

要回复问题请先登录注册