onethink动态扩展菜单中遇到的一个小bug解决思路
2018-01-30 21:18
337 查看
最近在改一个TP项目的时候遇到个奇怪的问题,使用动态扩展菜单
这里自动生成的侧边菜单发生了左面菜单消失的奇怪现象
于是顺藤摸瓜,找到了AdminController上发现了这么一段:
一看这就应该是控制这段动态扩展菜单显示的地方,于是继续查找:
乍一看没什么问题,但是我看到了这段:
这句话转换成数据库语句就是
于是我去数据库执行了一下,发现了三个记录:
自此,问题找到了,这里
这一句取的是第一个,而第一个不一定是哪个,于是就出了问题。问题找到了,解决就容易了:
把这段代码该为下列代码:
这样保证有一致的先用一致的,再考虑兼容性,一举两得。
{:extra_menu($_extra_menu,$__MENU__)}
这里自动生成的侧边菜单发生了左面菜单消失的奇怪现象
于是顺藤摸瓜,找到了AdminController上发现了这么一段:
$this->assign('__MENU__', $this->getMenus());
一看这就应该是控制这段动态扩展菜单显示的地方,于是继续查找:
乍一看没什么问题,但是我看到了这段:
M('Menu')->where('url like \'' . $controller . '/' . ACTION_NAME . '%\'')->field('id')->find();
这句话转换成数据库语句就是
select * from Menu where url like '$controller/$actionname%'
于是我去数据库执行了一下,发现了三个记录:
自此,问题找到了,这里
->field('id')->find()
这一句取的是第一个,而第一个不一定是哪个,于是就出了问题。问题找到了,解决就容易了:
$current = M('Menu')->where('url like \'' . $controller . '/' . ACTION_NAME . '%\'')->field('id')->find(); if (!$current) { $current = M('Menu')->where('url like \'' . $controller . '/%\'')->field('id')->find(); }
把这段代码该为下列代码:
$current = M('Menu')->where('url like \'' . $controller . '/' . ACTION_NAME . '%\'')->select(); if (!$current) { $current = M('Menu')->where('url like \'' . $controller . '/%\'')->select(); } if(count($current)>1){ foreach ($current as $r) { if($r['url']==$controller . '/' . ACTION_NAME){ $current=array($r); } } }
这样保证有一致的先用一致的,再考虑兼容性,一举两得。
相关文章推荐
- ListView 在getView()中设置一个item中的TextView的动态显示出现其它的也显示的bug解决方法
- [举一反三]解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari) 前言: 这是一个老bug了,现在提供一个完美解决方案。由于我一直是用createElement来创建动态的op
- 用数据集跑一个模型遇到bug如何解决
- JAVA课程设计-V-20161228-解决按一个菜单弹出两个窗口的BUG
- 今天遇到的一个bug,折腾了一早上,不过解决了,还是很高兴
- 解决工作中遇到的一个"打开,保存"文件框的bug的过程
- onethink学习之动态扩展菜单
- input框进行搜索遇到bug解决思路小感
- 笔记:做一个MFC串口界面遇到的一些问题和解决思路
- 一个朋友js图表开发遇到的问题 解决思路c和js
- jQuery 动态创建右键菜单并修改鼠标右击元素的值( 解决 依次右击多个元素后,修改值的时候多个元素的值皆被修改的bug)
- 使用 $(function(){}) 时遇到的一个小bug及解决方法
- 解决一个小概率bug的思路
- spark 集群运行standalone的cluster 方式遇到的bug,希望能被一个大神来解决
- 多了一个int, 导致成员变量值异常, 定位问题花费15分钟(后来又遇到此bug, 1分钟解决)
- vue计算属性时v-for处理数组时遇到的一个bug问题
- 解决了安装kchmviewer的过程中遇到的一个小问题
- 如何用RT实现动态的阴影。(记录一下,还有些bug要解决。)
- 一个页面中多个window.onload = function(){}冲突问题解决思路
- 出现Bug的一个优秀的解决方法