2013-05-07 54 views
1

我有一个$事件对象是得到了一堆在使用查询生成器我的数据库的各种表的结果在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