我需要你在laravel中创建的多级菜单的帮助,也需要排序的意见。 我有这样的数据库结构:
structure_id
是主键。 structure_name
是一个名称,将显示在前端。 structure_url
是网址,锚点将指向该网址。 module_id
在这里无关紧要(需要我在app中使用)。 sort_position
很重要。它是从1到x的整数。我将按此号码订购菜单项asc / desc。我还需要有一个改变顺序的意见(我想我能够自己编码......我希望)。我真的不知道,在子菜单中如何处理sort_position ...
parent_id
是一个属性,表示菜单项在另一个菜单项中有父项。因此,如果此值为0(如默认值),则该项目已启动。如果项目的parent_id是f.e。:2,则表示该项目属于structure_id = 2
我尝试了一些徒劳的实验,但我自己没有机会这样做。我是laravel的初学者,所以我希望有人能帮助我
答案 0 :(得分:0)
以下是我用来获取多级菜单的步骤:
表"菜单"
id,title,order,parent_id
模型
class Menu extends Model
{
public function children()
{
return $this->hasMany(self::class , 'parent_id', 'id')->orderBy('order');
}
}
控制器
class MenuController extends Controller
{
public function index()
{
$menus = Menu::where('parent_id', 0)->orderBy('order', 'ASC')->get();
return view('menu', compact('menus'));
}
}
查看
@foreach($menus as $menu)
@foreach($menu->children => $child)
<h4>{{ $child->title }}</h4>
@endforeach
@endforeach