Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Treeview菜单在Laravel中渲染两次类别_Php_Laravel_Laravel 5_Treeview_Laravel 5.2 - Fatal编程技术网

Php Treeview菜单在Laravel中渲染两次类别

Php Treeview菜单在Laravel中渲染两次类别,php,laravel,laravel-5,treeview,laravel-5.2,Php,Laravel,Laravel 5,Treeview,Laravel 5.2,我已经创建了嵌套的treeview类别和子类别,但它似乎呈现了两次类别 这就是发生的事情,我在第页看到了 Main category 1 - Sub -category 1.1 - Sub -category 1.2 Main category 2 - Sub -category 2.1 - Sub -category 2.2 Sub -category 1.1 Sub -category 1.2 Sub -category 2.1 Sub -category 2.2 这里发生

我已经创建了嵌套的treeview类别和子类别,但它似乎呈现了两次类别

这就是发生的事情,我在第页看到了

Main category 1
  - Sub -category 1.1
  - Sub -category 1.2
Main category 2
  - Sub -category 2.1
  - Sub -category 2.2
Sub -category 1.1
Sub -category 1.2
Sub -category 2.1
Sub -category 2.2
这里发生的事情是,首先渲染正确的树视图,然后在下面渲染子类别作为主类别

类别和子类别保存在一个表中,其中主类别有列
parent\u id
0,而if is sub category是主类别的id。这是我的模型

public function parent()
{
    return $this->belongsTo('App\Category');
}

public function children()
{
    return $this->hasMany('App\Category', 'parent_id');
}
控制器

public function index()
{
    $allCategories = Category::with(['children'])->get();     
    return view('categories', compact('allCategories'));
}
刀锋呢

@foreach($allCategories as $category)
  <li class="treeview">
    <a href="{{ $category->id }}">{{ $category->title }}</a>
    <ul class="treeview-menu">
      @foreach($category->children as $subcategory)
        <li class=""><a href="{{$subcategory->id}}">{{$subcategory->title}}</a></li>
      @endforeach
    </ul>
  </li>
@endforeach
@foreach($allCategories作为$category)
    • @foreach($category->children as$subcategory)
    • @endforeach
  • @endforeach
    像这样试试

    模型

    你的控制器

    public function index()
    {
        $allCategories = Category::tree();     
        return view('categories', compact('allCategories'));
    }
    
    还有你的刀片视图

    @foreach($allCategories as $item)
    <li class="treeview">
        <a href="{{ $item->id }}"><i class="fa fa-link"></i> <span>{{ $item->title }}</span> <i class="fa fa-angle-left pull-right"></i></a>
            <ul class="treeview-menu">
                @foreach($item['children'] as $child)
                <li><a href="{{ $child->id }}">{{ $child->title }}</a></li>
                @endforeach
            </ul>
    </li>
    @endforeach
    
    @foreach($allCategories作为$item)
    
    • @foreach($child'项目]作为$child)
    • @endforeach
  • @endforeach
    这是一个问题,因为雄辩者会为每个孩子进行查询。在我的情况下,我有太多的菜单和子菜单,雄辩地提出67个查询。安装以查看查询
    @foreach($allCategories as $item)
    <li class="treeview">
        <a href="{{ $item->id }}"><i class="fa fa-link"></i> <span>{{ $item->title }}</span> <i class="fa fa-angle-left pull-right"></i></a>
            <ul class="treeview-menu">
                @foreach($item['children'] as $child)
                <li><a href="{{ $child->id }}">{{ $child->title }}</a></li>
                @endforeach
            </ul>
    </li>
    @endforeach