/
Shamaeva2
/
coursework.local
Обзор
Документация
Войти
/
Shamaeva2
/
coursework.local
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/Http/Controllers/StudyGroupController.php
141 строка
4 KB
Шамаева Виктория Сергеевна
вывод классного руководителя в карточке учебных групп
25 июн 2026, 15:53
25 июн 2026, 15:53
40080f1
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use App\Models\StudyGroup; use App\Http\Requests\StoreStudyGroupRequest; use App\Http\Requests\UpdateStudyGroupRequest; use App\Models\Student; use App\Models\User; use Inertia\Response; use Illuminate\Http\Request; use Inertia\Inertia; class StudyGroupController extends Controller { /** * Отображает страницу со списком групп. */ public function index(Request $request): Response { $perPage = 10; $orderBy = (string) $request->input('orderBy', 'desc'); $search = (string) $request->input('search', ''); $query = StudyGroup::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('full_name', 'LIKE', "%{$search}%") ->orWhere('name', 'LIKE', "%{$search}%"); }); } $studyGroups = $query->with(['students.user', 'classroomTeacher'])->paginate($perPage)->withQueryString(); return Inertia::render('studyGroup/VIndex', [ 'studyGroups' => $studyGroups, 'filters' => [ 'orderBy' => $orderBy, 'search' => $search, ], ]); } /** * Show the form for creating a new resource. */ public function create() { $classroomTeachers = User::classroomTeachers()->get(); $students = Student::with(['user'])->get(); return Inertia::render('studyGroup/VCreate', [ 'classroomTeachers' => $classroomTeachers, 'students' => $students, ]); } /** * Store a newly created resource in storage. */ public function store(StoreStudyGroupRequest $request) { $studyGroup = StudyGroup::create($request->validated()); if ($request->has('students')) { Student::whereIn('id', $request->input('students')) ->update(['study_group_id' => $studyGroup->id]); } return redirect()->route('studyGroups.index'); } /** * Display the specified resource. */ public function show(StudyGroup $studyGroup) { $studyGroup->load(['students.user', 'classroomTeacher']); return Inertia::render('studyGroup/VShow', compact('studyGroup')); } /** * Show the form for editing the specified resource. */ public function edit(StudyGroup $studyGroup) { $classroomTeachers = User::classroomTeachers()->get(); $students = Student::with(['user'])->get(); $studyGroup->load(['students.user']); $selectedStudents = $studyGroup->students->pluck('id')->toArray(); return Inertia::render('studyGroup/VEdit', [ 'studyGroup' => $studyGroup, 'classroomTeachers' => $classroomTeachers, 'students' => $students, 'selectedStudents' => $selectedStudents, ]); } /** * Update the specified resource in storage. */ public function update(UpdateStudyGroupRequest $request, StudyGroup $studyGroup) { $studyGroup->update($request->validated()); if ($request->has('students')) { Student::where('study_group_id', $studyGroup->id) ->update(['study_group_id' => null]); Student::whereIn('id', $request->input('students')) ->update(['study_group_id' => $studyGroup->id]); } else { Student::where('study_group_id', $studyGroup->id) ->update(['study_group_id' => null]); } return redirect()->route('studyGroups.index'); } /** * Remove the specified resource from storage. */ public function destroy(StudyGroup $studyGroup) { $studyGroup->delete(); return redirect()->route('studyGroups.index'); } }