/
ghx
/
TicketFlow
Обзор
Документация
Войти
/
ghx
/
TicketFlow
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
app/Http/Controllers/UserProfileController.php
59 строк
2 KB
osnov
.
26 июн 2026, 11:56
26 июн 2026, 11:56
dc2de34
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use App\Models\Session; use Illuminate\Http\Request; class UserProfileController extends Controller { public function index(Request $request) { $user = $request->user(); $tab = $request->query('tab', 'overview'); if ($tab === 'admin' && ! $user->isAdmin()) { $tab = 'overview'; } $tickets = $user->tickets() ->with(['showtime.movie', 'showtime.hall', 'seat']) ->latest() ->paginate(10, ['*'], 'tickets_page'); $todayTickets = $user->tickets() ->with(['showtime.movie', 'showtime.hall', 'seat']) ->whereHas('showtime', fn ($q) => $q->whereDate('start_time', today())) ->get() ->sortBy('showtime.start_time'); $todaySessions = Session::with(['movie', 'hall']) ->whereDate('start_time', today()) ->where('start_time', '>=', now()) ->orderBy('start_time') ->get(); $upcomingTickets = $user->tickets() ->with(['showtime.movie', 'showtime.hall', 'seat']) ->whereHas('showtime', fn ($q) => $q->where('start_time', '>', now())) ->latest() ->take(5) ->get(); $stats = [ 'total_tickets' => $user->tickets()->count(), 'total_spent' => $user->tickets()->whereIn('status', ['paid', 'reserved'])->sum('price'), 'upcoming' => $user->tickets()->whereHas('showtime', fn ($q) => $q->where('start_time', '>', now()))->count(), ]; return view('profile.index', compact( 'user', 'tab', 'tickets', 'todayTickets', 'todaySessions', 'upcomingTickets', 'stats', )); } }