step1 表: think_group 增加记录 如:"新闻管理"
step2 表:think_node 增加记录 字段有效 group_id 为 think_group中新增记录的id
step3 后台 "新闻管理"导航 左侧菜单不显示
原因:
1 读取左侧菜单页面:example\Rbac\Tpl\Public\menu.html
<volist id="item" name="menu" >
<eq name="item['group_id']" value="$menuTag">
<neq name="item['name']|strtolower" value="public" >
<neq name="item['name']|strtolower" value="index" >
<eq name="item['access']" value="1" >
<tr class="row " >
<td><div style="margin:0px 5px"><img SRC="../Public/images/comment.gif" WIDTH="9" HEIGHT="9" BORDER="0" align="absmiddle" ALT=""> <a href="__APP__/{$item['name']}/index/" id="{$key}">{$item['title']}</a></div></td>
</tr>
</eq>
</neq>
</neq>
</eq>
</volist>
路径:example\Rbac\Lib\Action\PublicAction.class.php
public function menu()方法中读取menu的值时
$menu = array();
// $_SESSION = array(); //wangduoduo
if(isset($_SESSION['menu'.$_SESSION[C('USER_AUTH_KEY')]])) {
//如果已经缓存,直接读取缓存
$menu = $_SESSION['menu'.$_SESSION[C('USER_AUTH_KEY')]];
}else {
//读取数据库模块列表生成菜单项
$node = M("Node");
解决办法:
1 退出后重新登录,session重置
2 运行时session值空后 重新运行,注意值空后要把代码注释 不然其他地方出错
在ThinkPHP开发中,当在think_group和think_node表中增加记录后,后台的'新闻管理'左侧菜单未能正常显示。问题出现在menu.html模板文件的逻辑判断以及PublicAction类的menu方法中的session处理。解决方案包括退出后重新登录以重置session,或者在运行时清空session值后再执行操作。
1213

被折叠的 条评论
为什么被折叠?



