laravel7 权限菜单设置简易升缩

1:数据库填写数据,pid=0为顶级菜单,pid=对应的id为顶级菜单的子菜单

 

 2:laravel7 创建模型并链接对应的表名

复制代码
<?php

namespace App\models;

use Illuminate\Database\Eloquent\Model;

class Node extends Model
{
    //
    protected $table='node';
}
复制代码

 3:定义一个Base控制器,用于继承,里头书写递归方法:

复制代码
<?php

namespace App\Http\Controllers\admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class Base extends Controller
{
    //递归处理层级
    public function sonlevel($data, $pid = 0)
    {
        $arr = [];
        foreach ($data as $key => $val) {
            if ($val['pid'] == $pid) {
                $val['son'] = $this->sonlevel($data, $val['id']);
                $arr[] = $val;
            }
        }
        return $arr;


    }


}
复制代码

4:创建控制器:继承Base控制器,并将数据渲染至页面

复制代码
<?php

namespace App\Http\Controllers\admin;

use App\Http\Controllers\Controller;
use App\models\Node;
use Illuminate\Http\Request;


class Index extends Base
{
    //展示Node模型数据列表
    public function index(){
     $data=Node::all();
//调用Base控制器的方法
    $datas=$this->sonlevel($data);
//将数据渲染至视图
    return view('admin.index.index',compact('datas'));
    }



}
复制代码

5:视图进行双循环

复制代码
<aside class="Hui-aside">
    <div class="menu_dropdown bk_2">
        @foreach($datas as $item)
        <dl id="menu-article">
            <dt><i class="Hui-iconfont">&#xe616;</i> {{$item['node_name']}}<i class="Hui-iconfont menu_dropdown-arrow">&#xe6d5;</i></dt>
            <dd>
                <ul>
                    @foreach($item['son'] as  $sons)
                    <li><a data-href="article-list.html" data-title="资讯管理" href="javascript:void(0)">{{$sons['node_name']}}</a></li>
                    @endforeach
                </ul>
            </dd>
        </dl>
        @endforeach

</aside>
复制代码

效果图:

 

posted @   王越666  阅读(70)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示