从Laravel开始的一周


Week Commencing in Laravel 4

我有一个$events对象,在我的数据库中使用查询生成器从各种表中获得一堆结果。请看这里http://paste.laravel.com/qIj

我想把这些结果按周开始,所以当我在我的视图中输出它们时,它根据事件表的start_date字段中的信息按周分组。

有什么最好的办法吗?欢呼。

我通常这样做:

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

这有帮助吗?我不熟悉查询生成器,但你能通过一周开始使用它吗?