Php 在laravel中按手风琴标题对项目进行分组

Php 在laravel中按手风琴标题对项目进行分组,php,laravel,Php,Laravel,我在Laravel中使用了一个项目数组(在数组中,一半是“父项目”,一半是“子项目”) 假设数组是30个项目,每种类型15个,我试图得到一个结果,我会有一个单一的手风琴头,上面写着“父项目”,其中15个父项目在单个头下,然后是一个“子项目”的手风琴头,其中15个在它下面 然而,使用我当前的代码,我得到了每个项目的标题 我知道这是因为foreach,但我很困惑如何准确地实现我所寻找的,我似乎无法回避每个项目的标题问题 我做错了什么 @foreach($items as $item)

我在Laravel中使用了一个项目数组(在数组中,一半是“父项目”,一半是“子项目”)

假设数组是30个项目,每种类型15个,我试图得到一个结果,我会有一个单一的手风琴头,上面写着“父项目”,其中15个父项目在单个头下,然后是一个“子项目”的手风琴头,其中15个在它下面

然而,使用我当前的代码,我得到了每个项目的标题

我知道这是因为foreach,但我很困惑如何准确地实现我所寻找的,我似乎无法回避每个项目的标题问题

我做错了什么

    @foreach($items as $item)
  
  @if($item['type'] == "Parent Item")
    <div class="accordion" id="accordionExample">
      <div class="card">
        <div class="card-header" id="headingOne">
          <h2 class="mb-0">
            <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
              Main/Parent Items
            </button>
          </h2>
        </div>

        <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
          <div class="card-body">
            {{$item['Description']}}
          </div>
        </div>
      </div>
    </div>

  @elseif($item['type'] == "Child Item")
    <div class="accordion" id="accordionExample">
      <div class="card">
        <div class="card-header" id="headingTwo">
          <h2 class="mb-0">
            <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">
              Sub/Child Items
            </button>
          </h2>
        </div>

        <div id="collapseTwo" class="collapse show" aria-labelledby="headingTwo" data-parent="#accordionExample">
          <div class="card-body">
            {{$item['Description']}}
          </div>
        </div>
      </div>
    </div>   
  @endif

@endforeach
@foreach($items作为$item)
@如果($item['type']=“父项”)
主要/父项
{{$item['Description']}
@elseif($item['type']=“子项”)
子/子项目
{{$item['Description']}
@恩迪夫
@endforeach

您只需执行两个循环,即:

<div class="accordion" id="accordionExample">
    <div class="card">
        <div class="card-header" id="headingOne">
            <h2 class="mb-0">
                <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
                    Main/Parent Items
                </button>
            </h2>
        </div>
        <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
            @foreach($items as $item)
                @if($item['type'] == "Parent Item")
                    <div class="card-body">
                        {{$item['Description']}}
                    </div>
                @endif
            @endforeach
        </div>
    </div>
</div>

<div class="accordion" id="accordionExample2">
    <div class="card">
        <div class="card-header" id="headingTwo">
            <h2 class="mb-0">
                <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">
                    Sub/Child Items
                </button>
            </h2>
        </div>
        <div id="collapseTwo" class="collapse show" aria-labelledby="headingTwo" data-parent="#accordionExample2">
            @foreach($items as $item)
                @if($item['type'] == "Child Item")
                    <div class="card-body">
                        {{$item['Description']}}
                    </div>
                @endif
            @endforeach
        </div>
    </div>
</div>

主要/父项
@foreach($items作为$item)
@如果($item['type']=“父项”)
{{$item['Description']}
@恩迪夫
@endforeach
子/子项目
@foreach($items作为$item)
@如果($item['type']=“子项”)
{{$item['Description']}
@恩迪夫
@endforeach

另请注意,这两个元素上的
id=“accordionExample”
无效,它们应该具有唯一的id。

不幸的是,这仍然只是在每个项目上方创建了一个标题按钮。我只需要一个标题/按钮,所有项目都位于该标题/按钮下方one@TomN. 看我的更新,这符合你的需要吗?啊,当然!这很有道理,是的,效果很好。非常感谢。