zoukankan      html  css  js  c++  java
  • yii2 利用小部件生成后台左边菜单栏

        ************   模型层递归查询权限   ************

    /**
         * 递归方式查询权限
         */
        public function getPrivilege()
        {
            $connection = Yii::$app->db;
            $top=$command = $connection->createCommand('SELECT * FROM privilege')->queryAll();       
            return $this->digui($top, $parent_id=0);
        }
        
        public function digui($top, $parent_id)
        {   
            $child = array();
            foreach ($top as $key => $v)
            {
                if($v['parent_id'] == $parent_id)
                {
                    $child[] = $v;
                }
            }
            if(empty($child))
            {
                return  null;
            }
            foreach($child as $key => $v)
            {
                $second = $this->digui($top, $v['p_id']);
                if($second)
                {
                    $child[$key]['child'] = $second;
                }
            }
            return $child;
        }

          ************   控制器层组合数组   ************

    public function actionLeft(){
            
            //查询所有权限
            $pri = new Privilege();
            $privilege = $pri->getPrivilege();
            $child = array();
            foreach ($privilege as $key => $val) {
                if($val['child']){
                    foreach ($val['child'] as $k => $v) {
                        $child[$key][] = "<a href='index.php?r=".$v['controller'].'/'.$v['action']."' target='mainFrame' >".$v['privilege']."</a>";
                    }
                } else {
                    unset($privilege[$key]);
                }
            }
            //print_r($child);die;
            return $this->render('left',['privilege'=>$privilege,'child'=>$child]);
        }

    ************   视图层引用部件   ************

    <?php

    //折叠
    use yiiootstrapCollapse;

    ?>

    <style>
       #yii-debug-toolbar{display: none;}
    </style>

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>项目后台管理系统</title>
    </head>
    <body style="background:#4AA3D8">
    <?php foreach($privilege as $k => $v){?>
        <?php
        echo  Collapse::widget([
        'items'=>[
            [
                'label'=>$v['privilege'],
                'content'=>$child[$k],
            ]        
        ],
        'options'=>['style'=>['margin-bottom'=>'5px', 'left'=>'0']]
    ]);?>
    <?php }?>
    </body>
    </html>

  • 相关阅读:
    error: device not found
    xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Deve
    联想X系列服务器
    华为服务器
    linux db2升级
    aix6.1升级openssh&&openssl
    upgrading mysql: error: 1102: Incorrect database name
    linux7配置yum网络源
    How to install fixpack on DB2
    mysql 表空间管理
  • 原文地址:https://www.cnblogs.com/jhy-ocean/p/5396754.html
Copyright © 2011-2022 走看看