/
Shamaeva2
/
coursework.local
Обзор
Документация
Войти
/
Shamaeva2
/
coursework.local
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/Http/Controllers/ClassroomController.php
127 строк
3 KB
Шамаева Виктория Сергеевна
crud для учебной группы
24 июн 2026, 10:17
24 июн 2026, 10:17
8499af3
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use App\Models\Classroom; use App\Http\Requests\StoreClassroomRequest; use App\Http\Requests\UpdateClassroomRequest; use App\Models\Building; use Illuminate\Http\Request; use Inertia\Inertia; use Illuminate\Support\Facades\Gate; use Inertia\Response; class ClassroomController extends Controller { /** * Display a listing of the resource. */ public function index(Request $request): Response { Gate::authorize('viewAny', Classroom::class); $perPage = 10; $orderBy = (string) $request->input('orderBy', 'desc'); $search = (string) $request->input('search', ''); $query = Classroom::query(); match ($orderBy) { 'desc' => $query->orderBy('created_at', 'desc'), 'asc' => $query->orderBy('created_at', 'asc'), default => $query->orderBy('created_at', 'desc'), }; if ($request->filled('search')) { $query->where(function ($searchQuery) use ($search) { $searchQuery->where('number', 'LIKE', "%{$search}%") ->orWhere('floor', 'LIKE', "%{$search}%") ->orWhere('wing', 'LIKE', "%{$search}%"); }); } $classrooms = $query->paginate($perPage)->withQueryString(); return Inertia::render('classroom/VIndex', [ 'classrooms' => $classrooms, 'filters' => [ 'orderBy' => $orderBy, 'search' => $search, ], ]); } /** * Show the form for creating a new resource. */ public function create() { Gate::authorize('create', Classroom::class); $buildings = Building::all(); return Inertia::render('classroom/VCreate', [ 'buildings' => $buildings, ]); } /** * Store a newly created resource in storage. */ public function store(StoreClassroomRequest $request) { Gate::authorize('create', Classroom::class); Classroom::create($request->validated()); return redirect()->route('classrooms.index'); } /** * Display the specified resource. */ public function show(Classroom $classroom) { Gate::authorize('view', $classroom); return Inertia::render('classroom/VShow', [ 'classroom' => $classroom, ]); } /** * Show the form for editing the specified resource. */ public function edit(Classroom $classroom) { Gate::authorize('update', $classroom); $buildings = Building::all(); return Inertia::render('classroom/VEdit', [ 'classroom' => $classroom, 'buildings' => $buildings, ]); } /** * Update the specified resource in storage. */ public function update(UpdateClassroomRequest $request, Classroom $classroom) { Gate::authorize('update', $classroom); $classroom->update($request->validated()); return redirect()->route('classrooms.index'); } /** * Remove the specified resource from storage. */ public function destroy(Classroom $classroom) { Gate::authorize('delete', $classroom); $classroom->delete(); return redirect()->route('classrooms.index'); } }