2014-11-19 2 views
1

Я пытаюсь сгруппировать свои результаты по дате. Мое поле даты - это отметка времени mySQL, и я использую Laravel 4.1. Для этого я использую поле с именем «start_time» и ему нужно группировать буквально только по дате, не считая фактического времени.Групповая коллекция по дате в Laravel

Может ли кто-нибудь указать мне правильное направление? Я не знаком с такими датами в этой области.

$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

Это может быть очень простой подход, но это, как я всегда делаю это:

<?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 

Было бы неплохо (и лучше/лучшая практика) не делать дату форматирования, как это в Посмотреть. Но ты получил идею.

Смежные вопросы