diff --git a/app/Http/Controllers/BirthdayController.php b/app/Http/Controllers/BirthdayController.php new file mode 100644 index 0000000..361e2a8 --- /dev/null +++ b/app/Http/Controllers/BirthdayController.php @@ -0,0 +1,29 @@ +select('users.name', + 'users.dob', + 'users.id as user_id' + ); + + $currentMonth = Carbon::now()->format('m'); + $nextMonth = Carbon::now()->addMonth()->format('m'); + $userBirthdayQuery->whereIn(DB::raw("month(dob)"), [$currentMonth, $nextMonth]); + + $users = $userBirthdayQuery->get()->filter(function ($user) { + return $user->birthday_remaining < 60 && $user->birthday_remaining >= 0; + })->sortBy('birthday_remaining'); + + return view('birthdays.index', compact('users', 'currentMonth', 'nextMonth')); + } +} diff --git a/app/User.php b/app/User.php index cd98314..a9dd05a 100644 --- a/app/User.php +++ b/app/User.php @@ -3,9 +3,9 @@ namespace App; use Carbon\Carbon; -use Ramsey\Uuid\Uuid; -use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; +use Illuminate\Notifications\Notifiable; +use Ramsey\Uuid\Uuid; class User extends Authenticatable { @@ -284,4 +284,27 @@ class User extends Authenticatable { return '
| # | +{{ __('user.name') }} | +{{ __('birthday.birthday') }} | +{{ __('user.age') }} | +
| {{ $no++ }} | +{{ $user->name }} | ++ {{ $user->birthday->format('j M') }} + ({{ __('birthday.remaining', ['count' => $user->birthday_remaining]) }}) + | +{{ __('birthday.age_years', ['age' => $user->age]) }} | +
| {{ __('user.no_upcoming_birthday', ['days' => 60]) }} | +|||