【问题标题】:remove duplicate for only title laravel仅删除标题 laravel 的重复项
【发布时间】:2021-01-01 07:08:24
【问题描述】:

在我的 web 控制器中的 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

我的网站看起来像 this

但我希望它看起来像 this

如何删除重复的标题?

【问题讨论】:

  • 将带有 12.31 的行移出 for 循环
  • 还有很多其他月份的情况。如果我删除它,我所有的月份条件都将被删除......
  • 那么您将需要一个变量 $current 来存储 [month, year] 并在每次循环中比较它,如果值不同,您打印出 month.year 标题并将 $current 更新为新值。
  • 请给我看代码,对不起,我是 laravel 新手

标签: laravel view duplicates title


【解决方案1】:

在将数据传递到刀片模板之前,最好按月份对数据进行分组。通过使用集合方法 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

【讨论】:

  • 它有效,在 // 显示每个计划,我可以按 {{$plan->title}} 显示计划,在 // 显示月份标题 {{$plans->date}} 不起作用请帮助
  • 试试 $plans->first()->date
猜你喜欢
  • 1970-01-01
  • 2019-08-15
  • 2021-07-16
  • 2020-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多