laravel修改节点为层级显示

一、修改节点列表显示

在这里插入图片描述
可以看到我们这里1代表是菜单,0代表不是菜单,我们要给它显示为中文,所以修改模版代码:
在如下图位置修改:
在这里插入图片描述
代码如下:

<td>
	<!-- html原样输出 -->
	{!!$item -> menu!!}
	
	<!-- 解决vue符号冲突问题 -->
	<!-- @{{}} -->
</td>

接着修改模型增加访问器:

    // 访问器
    public function getMenuAttribute() {
        if ($this -> is_menu == '1') {
            return '<span class="label label-success radius">是</span>';
        }
        return '<span class="label label-danger radius">否</span>';
    }

在这里插入图片描述
效果:
在这里插入图片描述

二、修改节点列表(层级)展示

2.1、修改基础模型增加层级方法

    /**
     * 数组合并,并加上html标识前缀
     * @param array $data
     * @param int $pid
     * @param string $html
     * @param int $level
     * @param array
     */
    public function treeLevel(array $data, int $pid = 0, string $html = '--', int $level = 0) {
        static $arr = [];
        foreach ($data as $val) {
            if ($pid == $val['pid']) {
                // 重复一个字符多少次
                $val['html'] = str_repeat($html, $level * 2);
                $val['level'] = $level + 1;
                $arr[] = $val;
                $this -> treeLevel($data, $val['id'], $html, $val['level']);
            }
        }
        return $arr;
    }

在这里插入图片描述

2.2、节点模型增加获取所有节点数据

    // 获取全部数据
    public function getAllList() {
        $data = self::get() -> toArray();
        // dump($data);
        return $this -> treeLevel($data);
    }

在这里插入图片描述

2.3、节点控制器列表方法重写

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        // 获取搜索框 分页
        $data = (new Node) -> getAllList();
        return view('admin.node.index', compact('data'));
    }

在这里插入图片描述

2.4 节点列表模版部分重写

<tbody>
					@foreach($data as $item)
					<tr class="text-c">
						<td>{{$item['id']}}</td>
						<td class="text-left">{{$item['html']}}{{$item['name']}}</td>
						<td>{{$item['route_name']}}</td>
						<td>
							@if ($item['is_menu'] == 1) 
							<span class="label label-success radius"></span>
							@else
							<span class="label label-danger radius"></span>
							@endif
						</td>
						<td>{{$item['created_at']}}</td>
						<td class="td-manage">
							<span class="label label-primary radius">
								<a href="{{route('admin.node.edit', ['id' => $item['id']])}}">修改</a>
							</span>
							<span class="label label-danger radius">
								<a href="{{route('admin.node.destroy', ['id' => $item['id']])}}">删除</a>
							</span>
						</td>
					</tr>
					@endforeach
				</tbody>

在这里插入图片描述
效果:
在这里插入图片描述

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你华还是你华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值