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) {
            foreach ($val[‘child‘] as $k => $v) {
               
$child[$key][] = "<a
href=‘index.php?r=‘".$v[‘controller‘].‘/‘.$v[‘action‘].">".$v[‘privilege‘]."</a>";
            }
        }
        //print_r($child);die;
        return $this->render(‘left‘,[‘privilege‘=>$privilege,‘child‘=>$child]);
    }

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

<?php

//折叠
use yii\bootstrap\Collapse;

?>

<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>

时间: 2024-08-09 02:08:52

yii2 利用小部件生成后台左边菜单栏的相关文章

Yii2 DetailView小部件

DetailView小部件 Yii 提供了一套数据库小部件 widgets,这些小部件可以用于显示数据 DetailView 小部件用于显示一条记录数据 ListView 和 GridView 可以用于显示一个拥有分页.排序和过滤功能的列表或者表格 2.DetailView 用来显示一条记录的详情,以下为一条记录的情况: 一个Model模型类对象的数据 ActiveRecord 类的一个实例对象 由键值对构成的一个关联数组 <?= DetailView::widget([ // 调用 Detai

(十三) yii2 checkboxList小部件默认选中

$items.$options都是数组格式 $items是要显示的checkbox <span style="font-size:14px;">array('0'=>'足球', '1'=>'篮球','2'=>'排球')</span> $options是你默认选中的值 <span style="font-size:14px;">array('0'=>1)</span> <span style

Yii2 使用小部件 Breadcrumbs

yii有两种Breadcrumbs写法,one: echo Breadcrumbs::widget([ 'itemTemplate' => "<li><i>{link}</i></li>\n", // template for all links 'links' => [ [ 'label' => 'Post Category', 'url' => ['post-category/view', 'id' =>

YII2 小部件(widgets)

小部件基本上在views中使用,在视图中可调用 yii\base\Widget::widget() 方法使用小部件. 该方法使用 配置 数组初始化小部件并返回小部件渲染后的结果. 例如如下代码插入一个日期选择器小部件,它配置为使用俄罗斯语, 输入框内容为$model的from_date属性值. <?php use yii\jui\DatePicker; ?> <?= DatePicker::widget([ 'model' => $model, 'attribute' =>

YII2.0之窗体小部件

在工作中用到YII2框架,之前对Yii的Widgets这个不太理解,也就没有用上.最近在查看YII2的英文指南的时候,终于弄明白了是怎么一回事. 举个简单的例子,如果在做后台开发的时候,大部分页面都需要用到一个可选择的列表(<select>),那么我们可以把它做成窗体小部件. 具体看下面代码: <?php /**  * Created by PhpStorm.  * User: Administrator  * Date: 2017/2/14  * Time: 18:01  */ nam

Yii2的相关学习记录,alert等美化、confirm异步、session中的flash及小部件的使用(六)

呃,系统自带的alert.confirm等弹出框实在是难看,作为一个颜控,这能忍? 这里我用的是kartik-v/yii2-dialog,这个是基于bootstrap3-dialog这个来做了一些常用alert.confirm和dialog的小部件封装,当然了,本质上还是bootstrap3-dialog,可以用原生的方法,原生方法的用法点这里,而bootstrap3-dialog又是基于bootstrap3的modals做的封装.嗯,基本关系就是这样.在搜索这个相关知识时,经常会看到有人提到b

yii2之GridView小部件

GridView小部件用于展示多条数据的列表.GridView小部件的使用需要数据提供器即yii\data\ActiveDataProvider的实例作为参数,所以 第一步就是要在控制器方法中创建这个实例然后传给视图,下面以我做的一个demo为例子进行讲解. 控制器LifeController代码: //生活记录列表 public function actionIndex() { $searchModel = new Life(['scenario' => Life::SCENARIO_SEAR

Yii2.0框架 小部件 DetailView

1.数据小部件 Yii 提供了一套数据小部件 widgets,这些小部件可以用于展示数据 DetailView 小部件用于显示一条记录数据. ListView 和 GirdView 小部件能够用于显示一个拥有分页.排序和过滤功能的一个列表或者表格. 2. DetailView 用来显示一条记录的详情,下面这些都是一条记录的情况: 一个Model模型类对象的数据. ActiveRecord类的一个实例对象. 由键值对构成的一个关联数组. 3.DetailView的创建 调用DetailView::

axis2 利用小工具cat.aar

Axis2: Web Service是现在最适合实现SOAP的技术,而Axis2是实现Web Service的一种技术框架(架构). 昨天把把菜刀脚本打包发现<>在xml会被转义,导致菜刀客户端无法连接.看起来别人可以修改response类型,但是我没成功.利用之前发的Cat小工具打包成aar就可以玩了. axis2管理登陆默认配置了用户名为admin,密码axis2: axis2管理后台: 想要deploy 自己的应用需要先打成对应的aar.jar包.用eclipse安装axis2插件. S