我正在尝试按日期对结果进行分组。我的日期字段是mySQL时间戳,我使用的是Laravel 4.1。出于这个目的,我使用了一个名为'start_time'的字段,并且需要它按字面按字段分组,而忽略实际时间。
有人能指出我正确的方向吗?我不熟悉在这个框架中使用这样的日期。
$agenda = Agenda::where('active', '=', 'Y');
$agenda->with('user');
$agenda->with('room');
$agenda->groupBy(DB::raw('DATE_FORMAT(start_time, "%d/%m/%Y")'));
$agenda->orderBy('start_time', 'asc');
$agenda->distinct();
$agenda->get();
return View::make('agenda')->with('agendas', $agenda);
@foreach($agendas as $agenda)
{{ date("d M Y",strtotime($agenda->start_time)) }}
@endforeach
答案 0 :(得分:0)
这可能是一种非常基本的方法,但这就是我经常这样做的方式:
<?php $currentDate = null ?>
@foreach($agendas as $agenda)
<?php $date = date("d M Y",strtotime($agenda->start_time)); ?>
@if($currentDate != $date)
<?php $currentDate = $date; ?>
<h3>{{ $date }}</h3>
@endif
{{-- do the stuff --}}
@endforeach
在视图中不要像这样进行日期格式化会很好(并且最好/更好的练习)。但是你明白了。
答案 1 :(得分:0)
也许您会拆分成更多的foreach循环(?)。
首先,我们将查询以获取具有唯一,顺序,等式的start_time
的所有...
然后,推动一个foreach循环以获取属于每个start_time
元素的数据。
希望这会有用。