我想使菜单和子菜单动态。我用它们的链接制作了菜单,但无法制作子菜单,请帮助我制作数据库结构
表格名称:menu
id menu_name url timestamps
表格:sub_menu
id submenu_name link menu_id timestamps
我的查询是这样的
public function menu()
{
$sql=\DB::table('menu')->rightjoin('sub_menu','menu.id','=','sub_menu.menu_id')
->select('submenu_name','link','url','menu_id','menu_name','menu.id')->get();
return view('products.show.menu',compact('sql'));
}
视图
<ul>
@foreach($sql as $key => $nav)
@if($key > 0)
<li>
<a href="#">{{$nav->menu_name}}</a>
@if (count($nav->submenu_name) > 0 )
<ul>
@foreach($nav->submenu_name as $child)
<li><a href="#">{{$child->submenu_name}}</a></li>
@endforeach
@endif
</ul>
</li>
@endif
@endforeach
</ul>
2条答案
按热度按时间w46czmvw1#
是否已为这些表设置模型?查询将为每个菜单/子菜单组合返回多行,这意味着您不能按原样对其进行迭代。此处无需使用查询生成器。
假设您的模型设置如下(您需要检查关系中使用的名称空间):
在控制器中,您可以执行以下操作:
那么在你看来:
3b6akqbq2#
你可以不用控制器