为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 laravel 的类别导航菜单中返回子类别

如何在 laravel 的类别导航菜单中返回子类别

PHP
慕码人2483693 2022-12-23 10:05:05
我已经使用 AppServiceProvider 对所有页面可用,我想在导航菜单中加载它们自己类别中的所有子类别,现在它将加载所有类别,在最后一个类别中,它将列出表中的所有子类别,请帮助。这是图像样本header.blade.php@foreach($shareData['categories'] as $category)      <li class="dropdown m-menu-fw">        <a href="#" data-toggle="dropdown" class="dropdown-toggle">{{ $category->name }}                                <span><i class="fa fa-angle-down"></i></span></a>                                @endforeach                                <ul class="dropdown-menu" >                                    <li>                                        <div class="m-menu-content" style="text-align: center;">                                            <ul class="col-sm-12" >                                                <li class="dropdown-header">{{ $category->name }}</li>                                                @foreach($shareData['subcategories'] as $subcategory)                                                <li><a href="#">{{ $subcategory->name }}</a></li>                                                @endforeach                                            </ul>                                        </div>                                    </li>                                </ul>                            </li>AppServicePrivider.php $categories = Category::where('status',1)->get();         $subcategories = Subcategory::where('status',1)->get();$shareData = array( 'categories'=>$categories,'subcategories'=>$subcategories);       view()->share('shareData',$shareData);类别.php<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Category extends Model{    protected $table = 'categories';    public function posts(){        return $this->hasMany('App\Post');    }    public function subcategory(){        return $this->hasMany('App\Subcategory');    }}
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

让你的 header.blade.php 像这样:


@foreach($shareData['categories'] as $category)

  <li class="dropdown m-menu-fw">

    <a href="#" data-toggle="dropdown" class="dropdown-toggle">{{ $category->name }}

                            <span><i class="fa fa-angle-down"></i></span></a>



                            <ul class="dropdown-menu" >

                                <li>

                                    <div class="m-menu-content" style="text-align: center;">

                                        <ul class="col-sm-12" >

                                            <li class="dropdown-header">{{ $category->name }}</li>


                                            @foreach($category['subcategory'] as $subcategory)

                                            <li><a href="{{ url('/subcategory') }}/{{ $subcategory->id }}">{{ $subcategory->name }}</a></li>

                                            @endforeach

                                        </ul>




                                    </div>

                                </li>

                            </ul>

                        </li>


@endforeach

使您的 AppServiceProvider 类似于以下代码:


$categories = Category::where('status',1)->get(); 


$shareData = array( 

'categories'=>$categories

);


       view()->share('shareData',$shareData);


查看完整回答
反对 回复 2022-12-23
?
暮色呼如

TA贡献1853条经验 获得超9个赞

您应该with('subcategory')直接在类别查询上使用:


view()->share('shareData',Category::with('subcategory')->where('status',1)->get());

那么您的刀片视图可能是:


@foreach($shareData['categories'] as $category)

    <li class="dropdown m-menu-fw">

        <a href="#" data-toggle="dropdown" class="dropdown-toggle">{{ $category->name }}

            <span><i class="fa fa-angle-down"></i></span></a>


        <ul class="dropdown-menu">

            <li>

                <div class="m-menu-content" style="text-align: center;">

                    <ul class="col-sm-12">

                        <li class="dropdown-header">{{ $category->name }}</li>

                        @foreach($category['subcategory'] as $subcategory)

                            <li><a href="#">{{ $subcategory->name }}</a></li>

                        @endforeach

                    </ul>

                </div>

            </li>

        </ul>

    </li>

@endforeach

我会将关系方法从 更改subcategory()为subcategories(),因为它是一种HasMany关系。


查看完整回答
反对 回复 2022-12-23
  • 2 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号