1、用户表)主要存储后台管理员用户的基本信息,并可与角色表关联成为单用户多角色)。
user用户表字段名称类型长度注释idint11主键accountvarchar32后台管理员帐户pwdchar32后台管理员密码real_namevarchar16后台管理员名称role 例如,1,2,3 last _ IP varchar 16后台管理员上次登录iplast_timedatetime0后台管理员上次登录时间add_timedatetime0后台管理员添加时间log in _ in
menus侧面导航栏表字段名称类型长度注释idsmallint5菜单IDpidsmallint5父idiconvarchar25图标menu_namevarchar32按钮名称modulevarchar32模块是否显示actionvarar amsvarchar128参数pathvarchar255跳跃路径sorttinyint3排序is_showtinyint1
3、角色管理表(是配置管理员各种身份的表,主要用于相关权限表) )。
role角色管理表字段名称类型长度注释idint10身份管理idrole_namevarchar32身份管理名称menus_idtext0身份管理权限(menus_id )示例: 1,2
4、边栏整理亲子级代码进行遍历
/**初始化的左菜单*首先检索系统中的所有菜单,*将菜单按父项和子项关系分组*,如果当前租户权限设置限制此菜单,则确定当前用户是否有权访问当前页面不需要每页都传递给menus。 这里的书写方式是,ThinkPhP 5.1前后端不分离,因此将数据存储在view类中,在前端使用*/protectedfunctionrolelist ({ $ seach map=[ ] ); if (session 33603360 get (campus.user _ role ) ) $seachmap ) (role_code )=session3360:get ) campus } else { $ } $ list=users :3360 instance (-getrolelist ) $seachmap ); //根据权限检测并处理当前用户拥有的所有导航栏。 $menus=[]; if (! empty($list-result ) ) /遍历系统的所有菜单(foreach ) $list-resultas$v ) /根节点if (如果没有父节点) $ v [ ' module _ parare ] }} Foreach($list-resultas$v ) Foreach ) ) $ menus as $ key=$value (if ) $ v ) module_parentcode ' )=$ ke each issesese ) ) $menus ) ) $value ) ) ) modum } } } else { session :3360 clear (; $this-error ('您没有访问权限',URL(/adminlogin/login )、''、'2' ); //如果父节点下没有可显示的子节点,则为其父Foreach($menusas$k=$v ) ) if (! isset($v('child ' )|count ($ v ) ) )==0) ) unset ($ menus ) $k ); } } $menus['num']=0; $ this-view-set _ default _ vars ([ ' menus '=$ menus ] ); 返回; }