【问题标题】:get categories which has subcategories using laravel使用 laravel 获取具有子类别的类别
【发布时间】:2015-10-09 03:57:21
【问题描述】:

我正在从两个类别和子类别的表中检索数据。

categories cat_id 在子类别表中包含作为外键。

这是我的类别模型代码:

class Category extends Model
{
    protected $table = 'categories';

    public function subcategories()
    {
        return $this->hasMany(Subcategory::class, 'categories_id');
    }
}

这是我来自 SubCategory 模型的代码:

class Subcategory extends Model
{
    protected $table = 'sub_categories';

    public function category()
    {
        return $this->belongsTo(Category::class, 'categories_id');
    }

这是我从控制器中检索数据的方式:

$treeView = Category::with(['subcategories'])->get();

这就是我的.blade.php 部分的样子:

@foreach($treeView as $category)
    @if($category->has('subcategories'))
        <li class="treeview">
            <a href="#"><i class="fa fa-link"></i> <span>{{ $category->category_name }}</span>
                <i class="fa fa-angle-left pull-right"></i></a>
            <ul class="treeview-menu">
                @foreach($category->subcategories as $subcategory)

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

                @endforeach
            </ul>
        </li>
    @else
        <li><a href="#"><i class="fa fa-link"></i> <span>{{ $category->category_name }}</span></a></li>
    @endif

@endforeach

如上 html 结构:如果任何类别有子类别,我将构建一个树视图,否则显示没有树视图的类别。但是我在树视图中获得了所有有或没有子类别的类别.. 任何人都可以建议一种方法...

【问题讨论】:

    标签: php mysql laravel eloquent laravel-5


    【解决方案1】:

    只需将嵌套的 ul 包裹在 if 中:

    @if($category->subcategories->count())
      <ul class="treeview-menu">
        @foreach($category->subcategories as $subcategory)
          <li class=""><a href="#">{{$subcategory->sub_category_name}}</a></li>
        @endforeach
      </ul>
    @endif
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 2017-09-05
      • 1970-01-01
      相关资源
      最近更新 更多