无限级分类展示
来源:互联网 发布:六边形战士 知乎 编辑:程序博客网 时间:2024/04/30 19:44
无限极分类的展示:
1.要建立数据库表
CREATE TABLE `menu` (
`id` int( 11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sort_id` int(11) NOT NULL COMMENT '排序' ,
`parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '父级 id',
`title` varchar(255) NOT NULL COMMENT '标题' ,
`icon` varchar( 255) DEFAULT 'fa fa-circle-o' COMMENT '图标 ',
`route` varchar(255) DEFAULT NULL COMMENT ' 路径',
`url` varchar( 255) DEFAULT NULL COMMENT '外链' ,
`target` enum('_self' ,'_blank') DEFAULT '_self',
`ajax` enum( 'yes','no' ) DEFAULT 'no' COMMENT '弹出层 ',
`show` enum( 'yes','no' ) DEFAULT 'no' COMMENT '后台显示 ',
`remark` varchar(255) DEFAULT NULL COMMENT ' 描述',
`create_at` int(11) NOT NULL COMMENT '创建时间',
`update_at` int(11) NOT NULL COMMENT '修改时间',
PRIMARY KEY ( `id`)
) ENGINE =InnoDB AUTO_INCREMENT= 7 DEFAULT CHARSET= utf8
`id` int( 11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sort_id` int(11) NOT NULL COMMENT '排序' ,
`parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '父级 id',
`title` varchar(255) NOT NULL COMMENT '标题' ,
`icon` varchar( 255) DEFAULT 'fa fa-circle-o' COMMENT '图标 ',
`route` varchar(255) DEFAULT NULL COMMENT ' 路径',
`url` varchar( 255) DEFAULT NULL COMMENT '外链' ,
`target` enum('_self' ,'_blank') DEFAULT '_self',
`ajax` enum( 'yes','no' ) DEFAULT 'no' COMMENT '弹出层 ',
`show` enum( 'yes','no' ) DEFAULT 'no' COMMENT '后台显示 ',
`remark` varchar(255) DEFAULT NULL COMMENT ' 描述',
`create_at` int(11) NOT NULL COMMENT '创建时间',
`update_at` int(11) NOT NULL COMMENT '修改时间',
PRIMARY KEY ( `id`)
) ENGINE =InnoDB AUTO_INCREMENT= 7 DEFAULT CHARSET= utf8
2.建立的展示的类
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2015/6/9
* Time: 10:10
*/
namespace backend\controllers ;
class SideBar{
/*
* $node 查询数据库之后的结果集
* $cen 循环到第几层
* $pid 父级的id,第一级的父级默认为 0
* 目的:生成 UL Li嵌套的无限级UL列表
*/
public function mergeUlTree($node ,$cen= 1,$pid =0){
$tree ="<ul";
if($cen== 1){
$tree .=" class='sidebar-menu' ";
}else{
$tree .=" class='treeview-menu' ";
}
$tree .=">";
foreach( $node as $v ){
if($v-> parent_id==$pid ){
$tree.= "<li";
if( $cen==1){
$tree.= " class='treeview'" ;
}
$tree.= ">";
$tree.= "<a href='#'>" ;
$tree.= "<i class='".$v ->icon. "'></i>";
$tree.= "<span>";
$tree.= $v->title ;
$tree.= "</span>";
$have_next= false;
foreach( $node as $n ){
if( $n->parent_id ==$v-> id){
$have_next=true;
}
}
if( $have_next){
$tree.= "<i class='fa fa-angle-left pull-right'></i>";
}
$tree.= "</a>";
$cen+= 1;
$tree.= $this->mergeUlTree ($node, $cen,$v ->id);
$tree.= "</li>";
}
}
return $tree ."</ul>";
}
}
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2015/6/9
* Time: 10:10
*/
namespace backend\controllers ;
class SideBar{
/*
* $node 查询数据库之后的结果集
* $cen 循环到第几层
* $pid 父级的id,第一级的父级默认为 0
* 目的:生成 UL Li嵌套的无限级UL列表
*/
public function mergeUlTree($node ,$cen= 1,$pid =0){
$tree ="<ul";
if($cen== 1){
$tree .=" class='sidebar-menu' ";
}else{
$tree .=" class='treeview-menu' ";
}
$tree .=">";
foreach( $node as $v ){
if($v-> parent_id==$pid ){
$tree.= "<li";
if( $cen==1){
$tree.= " class='treeview'" ;
}
$tree.= ">";
$tree.= "<a href='#'>" ;
$tree.= "<i class='".$v ->icon. "'></i>";
$tree.= "<span>";
$tree.= $v->title ;
$tree.= "</span>";
$have_next= false;
foreach( $node as $n ){
if( $n->parent_id ==$v-> id){
$have_next=true;
}
}
if( $have_next){
$tree.= "<i class='fa fa-angle-left pull-right'></i>";
}
$tree.= "</a>";
$cen+= 1;
$tree.= $this->mergeUlTree ($node, $cen,$v ->id);
$tree.= "</li>";
}
}
return $tree ."</ul>";
}
}
2.视图中的代码如下:
<?php
#code ...
use backend\ controllers\SideBar ;
use backend\ models\Menu ;
?>
#code ...
use backend\ controllers\SideBar ;
use backend\ models\Menu ;
?>
#code ...
<?php
$sideBar=new SideBar ;
$list=Menu ::find() ->select( 'id,sort_id,parent_id,title')-> orderBy(['sort_id' =>SORT_DESC]) ->all();
echo $sideBar-> mergeUlTree($list ,1, 0);
?>
$list=Menu ::find() ->select( 'id,sort_id,parent_id,title')-> orderBy(['sort_id' =>SORT_DESC]) ->all();
echo $sideBar-> mergeUlTree($list ,1, 0);
?>
0 0
- 无限级分类展示
- MVC DropDownListFor 的使用和无限级分类的展示
- PHP递归实现无限级分类并展示
- layer弹出ifream,提交之后自动关闭;无限级分类排序以及无限级分类子孙图树形展示
- php无限级分类并把末级产品展示出来的思路
- thinkphp5带分组功能的树形结构的无限级分类节点展示
- 无限级分类
- 无限级分类
- 无限级分类
- PHP无限级分类
- ASP无限级分类
- DropDownList 无限级分类
- DropDownList无限级分类
- 实用无限级分类
- DropDownList 无限级分类
- DropDownList 无限级分类
- 无限级分类
- 无限级分类原理
- boost::bind的使用
- 联想G510进入BIOS的两种方法
- Linux 进程间通信
- Lifetime Improvement of NAND Flash-based Storage Systems Using Dynamic Program and Erase Scaling
- 【高级算法】Lasvegas算法解决3SAT问题(C++实现代码)
- 无限级分类展示
- 生成树(treegrid)的数据格式
- sgu265:Wizards(计算几何)
- 日志框架实现实时修改,实时生效,具体框架思路(1)
- 二维DCT变换
- Android网络编程之传递数据给服务器
- 细说linux性能优化
- JVM的gc概述
- c++ & * 符号的多重含义