laravel - Laravel 是否支持嵌套 GroupBy?
问题描述
我有一个类别表,其中包含“id”、“category_id”、“name”字段,其中“category_id”是父类别的 id。我的要求是我需要对下面的类别进行分组。
Europe
- England
Asia
- India
- Kerala
- Kochi
注意 - 这里欧洲、英格兰、亚洲、印度、喀拉拉邦、高知是类别。亚洲是印度的父类别,印度是喀拉拉邦的父类别,喀拉拉邦是高知的父类别。
是否有一些嵌套的 groupBy 解决方案?
解决方案
假设它是一对多的自引用关系,即一个类别只能属于另一个类别(单亲)
你的Category
模型应该是这样的:
public function parent() {
return $this->belongsTo('App\Category');
}
public function children() {
return $this->hasMany('App\Category');
}
在您的main
刀片模板中,您有:
<ul class="navbar-nav">
@foreach ($menu_items as $item)
@include('menu', $item)
@endforeach
</ul>
$menu_items
所有父类别的列表在哪里( category_id 为 null 或 0 的类别)
还有你的menu
刀片模板:
@if ( $item->children->isNotEmpty() )
<li class="nav-item {{ $item->parents->isNotEmpty() ? 'dropdown-submenu' : 'dropdown' }}">
<a class="nav-link dropdown-toggle" href="{{ $item->slug ? url($item->slug) : 'javascript:void(0);' }}" id="navbarDropdown{{ $item->id }}" role="button" data-toggle="hover">
{{ $item->title }}
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown{{ $item->id }}">
@foreach ($item->children as $item)
@include('menu', $item)
@endforeach
</ul>
@else
<li class="nav-item">
<a class="nav-link" href="{{ $item->slug ? url($item->slug) : 'javascript:void(0);' }}">{{ $item->title }}</a>
@endif
</li>
我从我最近从事的一个项目中粘贴了这段代码,让您了解嵌套下拉菜单,您必须自己处理样式部分。但是这段代码足以给你一个正确的理解。
PS:这一切都未经测试。让我知道是否有问题
推荐阅读
- c++ - nodejs的c ++插件中的预期类名
- apache-spark - spark结构化流如何计算水印
- excel - 将新添加的工作表连接到现有工作表
- javascript - localforage 中的 JSON,更新属性值的有效方法(Binarysearch 等)?
- pandas - 在烧瓶路线之间共享一个变量
- angular - 拦截器不拦截 http POST 请求(Angular 6)
- wordpress - 带有和不带有 WooCommerce 的 WordPress 多站点
- python - 尝试在 python 中将对象转换为 int 类型的问题
- node.js - 错误:ER_ACCESS_DENIED_ERROR:用户'node'@'127.0.0.1 的访问被拒绝
- android - Error with getting data from json response retrofit android