博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP左侧菜单栏的管理与实现
阅读量:5937 次
发布时间:2019-06-19

本文共 2615 字,大约阅读时间需要 8 分钟。

以thinkPHP5.0为例后台config.php文件里配置
//配置文件设置菜单内容属性'menu' => [  [    'name' => '菜单栏1',    'url' => '/admin/index/one',    'status'=> 0,    'sub'=> 0  ],  [    'name' => '菜单栏2',    'url' => '#',    'status'=> 0,    'sub'=>[        [          'name' => '子菜单栏1',          'url' => '/admin/user/one',          'status'=> 0,        ],        [          'name' => '子菜单栏2',          'url' => '/admin/user/two'),          'status'=> 0,        ],    ]  ],  [    'name'=> '菜单栏3',    'url' => '#',    'status'=> 0,    'sub'=>[        [          'name' => '子菜单栏1',          'url' => '/admin/admin/one',          'status'=> 0,        ],        [          'name' => '子菜单栏2',          'url' =>url('/admin/admin/two'),          'status' => 0,        ],    ]  ],  [    'name' => '菜单栏4',    'url' => '/admin/order/one',    'status'=> 0,    'sub'=> 0  ]]
 

  

在项目后台初始化方法里base
class Base extends Controller{    protected function _initialize()    {        $request = Request::instance();        if (session('uid') === null) {            $this->redirect('Simple/login');        }        $menu = Config::get('menu'); //获取配置文件里的菜单数据        $clickUrl = $request->path(); //获取当前请求的地址        $clickUrl = '/' . $clickUrl;        $menuData = setMenu($menu, $clickUrl); //对每个配置项进行状态设置        $this->assign('menu', $menuData);    }}
 

  

后台common.php文件
function setMenu($menuData,$url){    if (!is_array($menuData)){        return false;    }    foreach ($menuData as $key => $value) {        if($value['url'] == '#'){            foreach ($value['sub'] as $k => $v) {                if($v['url'] == $url){                    $menuData[$key]['status'] = 1;     //改变当前访问的子菜单栏状态                    $menuData[$key]['sub'][$k]['status'] = 1;  //改变当前当前的菜单栏状态                }            }        } else {            $menuData[$key]['status'] = 1;        }    }    return $menuData;}
 

  

布局页面上view判断菜单栏及子菜单栏的status状态

  

 

转载于:https://www.cnblogs.com/qhorse/p/10038190.html

你可能感兴趣的文章
6.<1>四则运算的研究[栈]
查看>>
java程序员笑不死的经历ส้้้้้้้้้
查看>>
php-fpm配置
查看>>
c++头文件和#include 学习笔记
查看>>
第四天(考试)
查看>>
关于VUE的路由地址问题
查看>>
node-buffer解读
查看>>
Vue 2.x折腾记 - (22) Vue 打包图片在safari不显示的问题
查看>>
ES6中的class
查看>>
iOS - swift项目接入bugly - 报错, 配置符号表,下载Java环境,
查看>>
oracle sql语句实现累加、累减、累乘、累除
查看>>
SCNetworkReachabilityRef监测网络状态
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
接口由40秒到200ms优化记录
查看>>
java 视频播放 多人及时弹幕技术 代码生成器 websocket springmvc mybatis SSM
查看>>
Activiti6.0,spring5,SSM,工作流引擎,OA
查看>>
第十三章:SpringCloud Config Client的配置
查看>>
使用 GPUImage 实现一个简单相机
查看>>
CoinWhiteBook:区块链在慈善事业中的应用
查看>>
【二】express
查看>>