一、修改节点列表显示
可以看到我们这里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的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。