如何在<select>中通过雄辩来分组

时间:2017-11-17 08:58:59

标签: php eloquent

我想在SELECT中拥有独特的mounth。我发现我必须使用GROUP BY。但它不会这样工作:  @foreach($月份为$ month)        &lt; option value =&#34; {{$ month-&gt; id}}&#34;&gt; {{Carbon \ Carbon :: parse($ month) - &GT;日期) - &gt;格式(&#39; F&#39;) - &gt; groupBy(&#39; date&#39;)}}&lt; / option&gt;  @endforeach 如何以这种方式使用groupBy?因为它现在看起来没有GROUP BY: 我的Laravel控制器: 公共职能指数() {     $ users = User :: all([&#39; name&#39;,&#39; id&#39;]);     $ months = RouteInfo :: all([&#39; date&#39;,&#39; id&#39;]);     返回视图(&#39; admin.index&#39;,压缩(&#39;用户&#39;,$用户,&#39;月&#39;,$月)); } 谢谢您的帮助

2 个答案:

答案 0 :(得分:1)

您只需在show

之前过滤项目
@php
$uniqueMonth = [];
  foreach($months as $key=>$month){
     $month = Carbon\Carbon::parse($month->date);
     $uniqueMonth[$month->format('m')] = $month->format(' F ');
  }
  ksort($uniqueMonth); // sorting months
@endphp

@foreach($uniqueMonth as $key=>$month)
   <option value="{{ $key }}">{{ $month }}</option>
@endforeach

答案 1 :(得分:0)

您可以在控制器内执行此类操作。

$months = RouteInfo::all(['date', 'id'])->groupBy(function($month) {
    return Carbon::parse($month->date)->format('F');
});

然后在你的视野中

@foreach($months as $month)
    <option>{{ $month }}</option>
@endforeach

这是未经测试的,如果它适合您或有任何错误,请告诉我。