thinkphp开发,表里增加记录后 左侧菜单不显示

在ThinkPHP开发中,当在think_group和think_node表中增加记录后,后台的'新闻管理'左侧菜单未能正常显示。问题出现在menu.html模板文件的逻辑判断以及PublicAction类的menu方法中的session处理。解决方案包括退出后重新登录以重置session,或者在运行时清空session值后再执行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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值空后 重新运行,注意值空后要把代码注释 不然其他地方出错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值