如何在Laravel中的类别导航菜单中返回子类别 [英] How to return subcategory in category nav menu in laravel

查看:102
本文介绍了如何在Laravel中的类别导航菜单中返回子类别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用AppServiceProvider在所有页面上可用,并且我想在导航菜单中加载其自己类别中的所有子类别,现在它将加载所有类别,而在最后一个类别中,它将列出表中具有的所有子类别,请提供帮助.

I have used AppServiceProvider to be available for all pages and i want to load all subcategories in their own category in navigation menu now it will load all categories and in the last category it will list all subcategories that have in table please help.

这是图像样本

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);

Category.php

<?php

namespace 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');
    }
}


推荐答案

使您的header.blade.php像这样:

Make Your header.blade.php like this:

@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类似于以下代码:

Make your AppServiceProvider like the following code:

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

$shareData = array( 
'categories'=>$categories
);

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

这篇关于如何在Laravel中的类别导航菜单中返回子类别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆