/
Shamaeva2
/
coursework.local
Обзор
Документация
Войти
/
Shamaeva2
/
coursework.local
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/Http/Controllers/Admin/UserController.php
124 строки
3 KB
Шамаева Виктория Сергеевна
создание сущности студент
24 июн 2026, 11:08
24 июн 2026, 11:08
f502974
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\StoreUserRequest; use App\Http\Requests\UpdateUserRequest; use App\Models\User; use Illuminate\Http\Request; use Inertia\Inertia; use Inertia\Response; class UserController extends Controller { /** * Отображает страницу user. */ public function index(Request $request): Response { $perPage = 10; $orderBy = (string) $request->input('orderBy', 'desc'); $search = (string) $request->input('search', ''); $query = User::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('first_name', 'LIKE', "%{$search}%") ->orWhere('last_name', 'LIKE', "%{$search}%"); }); } $users = $query->paginate($perPage)->withQueryString(); return Inertia::render('admin/users/VIndex', [ 'users' => $users, 'filters' => [ 'orderBy' => $orderBy, 'search' => $search, ], ]); } /** * Show the form for creating a new resource. */ public function create() { return Inertia::render('admin/users/VCreate'); } /** * Store a newly created resource in storage. */ public function store(StoreUserRequest $request) { $validatedData = $request->validated(); $user = User::create($validatedData); // Если роль 'student', создаем связь if ($validatedData['role'] === 'student') { $user->student()->create([]); } return redirect()->route('admin.users.index'); } /** * Display the specified resource. */ public function show(User $user) { return Inertia::render('admin/users/VShow', compact('user')); } /** * Show the form for editing the specified resource. */ public function edit(User $user) { return Inertia::render('admin/users/VEdit', [ 'user' => $user, ]); } /** * Update the specified resource in storage. */ public function update(UpdateUserRequest $request, User $user) { $user->update($request->validated()); return redirect()->route('admin.users.index'); // Если страраю роль не студент и меняется на студента. if ($validatedData['role'] === 'student' && $oldRole !== 'student') { if (!$user->student) { $user->student()->create([]); } } // Если страрая роль студент то меняется на не студента. if ($oldRole === 'student' && $validatedData['role'] !== 'student') { if ($user->student) { $user->student()->delete(); } } } /** * Remove the specified resource from storage. */ public function destroy(User $user) { $user->delete(); return redirect()->route('admin.users.index'); } }