Core implementation: controllers, views, routes, models, import command
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<?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'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user