public function getMonth($year = null, $month = null) { if ($year == null) { $year = date('Y'); } if ($month == null) { $month = date('m'); } $title = date('F Y', mktime(0, 0, 0, $month, 1, $year)); $date = Carbon::now(); $date->year = $year; $date->month = $month; $date->startOfMonth(); $end = $date->copy()->endOfMonth(); $next = $date->copy()->addMonths(1); $prev = $date->copy()->subMonths(1); $photos = Photo::whereBetween('date', [$date->toDateString(), $end->toDateString()])->get(); if ($photos->isEmpty()) { $this->generate($year, $month); } $start = $date->dayOfWeek; $calendar = []; $j = 0; for ($i = 0; $i < $start; $i++) { $calendar[$j][$i] = null; } foreach ($photos as $photo) { $temp = new Carbon($photo->date); if ($temp->dayOfWeek == 0) { if ($j != 0) { $j++; } } $calendar[$j][$temp->dayOfWeek] = $photo; if ($temp->dayOfWeek == 6) { $j++; } } \View::share('next', $next); \View::share('prev', $prev); \View::share('title', $title); \View::share('photos', $calendar); return \View::make('photos.month'); }