2013-05-07 2 views
1

У меня есть $ события объект, который получает кучу результатов из различных таблиц в моей базе данных с помощью Query Builder в Laravel 4. Смотрите здесь http://paste.laravel.com/qIjнедели Начиная с Laravel 4

Я хотел бы разделить эти результаты, чтобы неделя, поэтому, когда я выводю их по моему мнению, он группирует все по неделям, основываясь на информации в поле start_date таблицы событий.

Любые идеи, как наилучшим образом достичь этого? Приветствия.

ответ

4

я обычно делаю что-то вроде этого:

<?php 
// Event model 
public function getAllByWeek() { 
    $events = static::orderBy('created_at', 'DESC')->get(); 
    $orderedEvents = array(); 

    foreach ($events as $event) { 
     $date = new \DateTime($event->created_at); 
     $weekCategory = $date->format('oW'); 
     $weekFormatted = $date->format('W'); 

     if (! array_key_exists($weekCategory, $orderedEvents)) { 
      $orderedEvents[$weekCategory] = (object) array(
       'week' => $weekFormatted, 
       'events' => array(), 
      ); 
     } 

     $orderedEvents[$weekCategory]->events[] = $event; 
    } 

    return $orderedEvents; 
} 

// Controller 
$orderedEvents = Event::getAllByWeek(); 

// View 
@foreach ($orderedEvents as $eventsHolder) 

    {{ $eventsHolder->week }} 

    @foreach ($eventsHolder->events as $event) 

     // content output 

    @endforeach 

@endforeach 
0

Помогает ли это? Я не знаком с построителем запросов, но можете ли вы пройти неделю, начинающуюся с него?

Get date of Monday in current week in PHP 4

+0

Приветствия. На самом деле я не уверен. –

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