首页 > 解决方案 > 仅删除标题 laravel 的重复项

问题描述

在我的网络控制器中的 laravel 5.7

public function index(Request $request){

    $plan = Plan::All();

    return view('web.plan.index', compact('plan'));
}

在我的视图文件中

                   @foreach($plan as $singlePlan)
                   
                  @if(Carbon\Carbon::parse($singlePlan->date)->format('m')==10)
                        
                        <div class="row brow bg-gray ">
                            <div class="col-md-12">
                                <div class="row-title">
                                    <strong>12.31</strong>
                                </div>
                            </div>
                        </div>
                         
            
                    
                    <div class="m-departures">
                        <div class="row brow last-row" >
                            <div class="col-md-2 col-sm-2 col hidden-xs">
                                <div class="td center">Dec 21-22</div>
                            </div>
                            <div class="col-md-5 col-sm-5 col">
                                <div class="td"><a href="#" target="_blank" rel="noopener noreferrer">Fest</a></div>
                            </div>
                            <div class="col-xs-6 col visible-xs">
                                <div class="td">2 day</div>
                            </div>
                            <div class="col-md-1 col-sm-2 col hidden-xs">
                                <div class="td">2 day</div>
                            </div>
                            <div class="col-md-2 col-sm-3 col-xs-6 col">
                                <div class="td">
                                    <span class="orange schedule-status">
                                         4                                        
                                    </span>          
                                                                  
                                </div>                                   
                            </div>                               
                            <div class="col-md-2 col-xs-12 col tour-link hidden-sm hidden-xs">
                                <div class="td center"><a href="#" >view</a></div>
                            </div>
                        </div>
                    </div>
                 
                        
                @endif
                      @endforeach

我的网络看起来像这样

但我希望它看起来像这样

如何删除重复的标题?

标签: laravelviewduplicatestitle

解决方案


在将数据传递到刀片模板之前,最好按月份对数据进行分组。通过使用集合方法 mapToGroups https://laravel.com/docs/8.x/collections#method-maptogroups

$planGroups = Plan::get()->mapToGroups(function($plan, $key) {
    $planDate = \Carbon\Carbon::parse($plan->date);

    return ["{$planDate->month} {$planDate->year}" => $plan];
})
->all();

您将获得按月分组的几组计划,例如

[
    '11 2020' => [plan, plan, ...],
    '12 2020' => [plan, plan, plan, ...]
]

然后在您的刀片模板中,您可以循环浏览月份,然后循环浏览计划。

@foreach ($planGroups as $month => $plans)
    // show month heading

    @foreach ($plans as $plan)
        // show each plan
    @endforeach
@endforeach

推荐阅读