43 lines
1.2 KiB
PHP
43 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\User;
|
|
use App\Models\UserGame;
|
|
|
|
class UserController extends Controller
|
|
{
|
|
public function show(User $user)
|
|
{
|
|
$stats = [
|
|
'played' => $user->library()->where('status', 'played')->count(),
|
|
'playing' => $user->library()->where('status', 'playing')->count(),
|
|
'want_to_play' => $user->library()->where('status', 'want_to_play')->count(),
|
|
'total' => $user->library()->count(),
|
|
];
|
|
|
|
$recentlyPlayed = $user->library()
|
|
->with('game')
|
|
->where('status', 'played')
|
|
->latest('updated_at')
|
|
->limit(6)
|
|
->get();
|
|
|
|
return view('users.show', compact('user', 'stats', 'recentlyPlayed'));
|
|
}
|
|
|
|
public function library(User $user)
|
|
{
|
|
$status = request('status');
|
|
$query = $user->library()->with('game');
|
|
|
|
if ($status && in_array($status, UserGame::STATUSES)) {
|
|
$query->where('status', $status);
|
|
}
|
|
|
|
$entries = $query->latest('updated_at')->paginate(24)->withQueryString();
|
|
|
|
return view('users.library', compact('user', 'entries', 'status'));
|
|
}
|
|
}
|