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 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>
yii2 利用小部件生成后台左边菜单栏的更多相关文章
- Yii2 DetailView小部件
DetailView小部件 Yii 提供了一套数据库小部件 widgets,这些小部件可以用于显示数据 DetailView 小部件用于显示一条记录数据 ListView 和 GridView 可以用 ...
- Yii2 使用小部件 Breadcrumbs
yii有两种Breadcrumbs写法,one: echo Breadcrumbs::widget([ 'itemTemplate' => "<li><i>{l ...
- YII2 小部件(widgets)
小部件基本上在views中使用,在视图中可调用 yii\base\Widget::widget() 方法使用小部件. 该方法使用 配置 数组初始化小部件并返回小部件渲染后的结果. 例如如下代码插入一个 ...
- yii2小部件(widget)
一.创建一个简单的小部件 namespace common\components; //common需要自己先设定一个别名 use yii\base\Widget; //小部件需要继承的基类 use ...
- Yii2的相关学习记录,alert等美化、confirm异步、session中的flash及小部件的使用(六)
呃,系统自带的alert.confirm等弹出框实在是难看,作为一个颜控,这能忍? 这里我用的是kartik-v/yii2-dialog,这个是基于bootstrap3-dialog这个来做了一些常用 ...
- yii2 Gridview网格小部件
Gridview 网格小部件 一.特点: 1.是yii中功能最强大的小部件之一: 2.非常适合快速建立系统的管理后台. 3.用 dataProvider 键来指定数据的提供者 4.用 filterMo ...
- Yii2之ListView小部件
ListView是yii框架中类似GridView,也是用于展示多条数据的小部件,相比GridView,ListView可以更加灵活地设置数据展示的格式. 下面以我自己做的一个使用ListView来展 ...
- 教你在Yii2.0框架中如何创建自定义小部件
本教程将帮助您创建自己的自定义小部件在 yii framework 2.0.部件是可重用的模块和用于视图. 创建一个小部件,需要继承 yii\base\Widget,覆盖重写 yii\base\Wid ...
- yii2之GridView小部件
GridView小部件用于展示多条数据的列表.GridView小部件的使用需要数据提供器即yii\data\ActiveDataProvider的实例作为参数,所以 第一步就是要在控制器方法中创建这个 ...
随机推荐
- 为设计师准备的 20 个新的免费 PSD 模板
设计师们每天的工作经常要用到各种模板,本文推荐 20 个新的免费 PSD 模板,可节省设计时间. Blueprint Notice PSD Wooden Drawer Icon Minimal Clo ...
- ubuntu下python3安装scrapy,OpenSSL
环境:ubuntu 16.04 , python3.5.1+ 安装顺序如下: sudo apt-get install build-essential sudo apt-get install p ...
- notepad++之TextFX插件
一.安装 插件→Plugin Manager→Show Plugin Manager,Availble→选中TextFX→install 二.使用 1.去除重复行 TextFX—>TextFX ...
- hdu5884 Sort(二分+k叉哈夫曼树)
题目链接:hdu5884 Sort 题意:n个有序序列的归并排序.每次可以选择不超过k个序列进行合并,合并代价为这些序列的长度和.总的合并代价不能超过T, 问k最小是多少. 题解:先二分k,然后在k给 ...
- PHP获取指定时间的上个月
主要用strtotime()这个函数 php 获得前一个月的月份 date("Y-m-d",strtotime("last month")); php获得给定时 ...
- jquery 添加方法 : $.fn.方法名 = function(参数a,b,c){
$.fn.image_checked = function(self,status,img_body,csrf_token){ $(this).live('click', fu ...
- CI 目录下放置index.html,防止直接访问
CI 目录下放置index.html,防止直接访问
- 第五章 CSS页面布局基础
1.标准文档流 在正常流中,在没有使用浮动或者定位的情况下,文本元素按照从上到下.从左到右的格式布局.这是浏览器的默认行为.在正常流中,块级元素从上到下依次排列,而行级元素从左到右依次排列.正常流中的 ...
- 百胜集团李磊:BPM实现业务流程全过程无缝链接
作为全球最大的餐饮企业之一,百胜集团在形成规模化连锁经营效应的同时,战略地利用信息化手段,强化管理和运营水平,打造企业的核心竞争力.通过流程梳理,百胜集团实现了以规模化.规范化.信息化和现代化为主题的 ...
- android listview综合使用示例_结合数据库操作和listitem单击长按等事件处理
本示例说明: 1.自定义listview条目样式,自定义listview显示列数的多少,灵活与数据库中字段绑定. 2.实现对DB的增删改查,并且操作后listview自动刷新. 3.响应用户操作点击事 ...