gpt4 book ai didi

php - 在 laravel 5 中使用 bootstrap 进行多级导航

转载 作者:太空宇宙 更新时间:2023-11-03 21:30:20 24 4
gpt4 key购买 nike

我正在使用 laravel 5 作为我的框架。

我有一个这样的类别表:

enter image description here

如果parent_id = id

,我想把它做成多级 Bootstrap 菜单

这是我目前尝试过的:

<ul class="nav navbar-nav navbar-right">        
<li class="dropdown">
<a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Categories <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
@foreach( $category as $cat )
@if( $cat->id === $cat->parent_id)
<ul class="dropdown-menu" role="menu">
<li class="dropdown-submenu">
<a href="{{ url( '/category', Safeurl::make( $cat->name ) ) }}" data-toggle="dropdown-toggle" aria-expanded="false">{{ $cat->name }}
<ul class="dropdown-menu" role="menu">
<li>
<a href="{{ url( '/category', [Safeurl::make( $cat->name ), Safeurl::make( $cat->name )] ) }}"></a>
</li>
</ul>
</a>
</li>
</ul>
@else
<li>
<a href="{{ url( '/category', Safeurl::make( $cat->name ) ) }}">{{ $cat->name }}</a>
</li>
@endif
@endforeach
</ul>
</li>
</ul>

但这个结果是,我得到的输出为 1 低于另一个。

我希望如果 parent_id = id,它应该在该特定 id 旁边显示子类别。

例如,在当前示例中,id = 6parent_id = 4,这意味着 Bootstrap 菜单应该在服装

更新 1:

提交答案后,无法显示子类别。

代码如下:

<li class="dropdown">
<a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Categories <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
@foreach( $category as $cat )
<li @if($cat->childs->count()) class="dropdown" @endif>
<a href="javascript:void(0)" @if( $cat->childs->count() ) class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" @endif>
{{ $cat->name }}
@if( $cat->childs->count() )
<span class="caret"></span>
@endif
</a>
@if( $cat->childs->count() )
<ul class="dropdown-menu" role="menu">
@foreach( $cat->childs as $child )
<a href="{{url('/category', [Safeurl::make($cat->name), Safeurl::make($child->name)])}}">
{{ $child->name }}
</a>
@endforeach
</ul>
@endif
</li>
@endforeach
</ul>

我如何实现这一点?

最佳答案

一种方法是在模型中添加关系

public function childs()
{
return $this->hasMany('Category', 'parent_id', 'id');
}

在你的 Controller 中只选择 category where parent_id==0

在你看来你可以要求 child :

@foreach( $category as $cat )
<li @if($cat->childs->count()) class="dropdown" @endif>
<a href="{{ url( '/category', Safeurl::make( $cat->name ) ) }}" @if($cat->childs->count()) class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" @endif>{{ $cat->name }} @if($cat->childs->count()) <span class="caret"></span> @endif</a>
@if($cat->childs->count())
<ul class="dropdown-menu" role="menu">
@foreach($cat->childs as $child)
<li><a href="{{ url( '/category', [Safeurl::make( $child->name ), Safeurl::make( $child->name )] ) }}"></a></li>
@endforeach
</ul>
@endif
</li>
@endforeach

关于php - 在 laravel 5 中使用 bootstrap 进行多级导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com