Files
test/app/Http/Controllers/UserController.php
2026-05-11 12:29:41 +08:00

42 lines
1.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Role;
use App\Models\User;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
class UserController extends Controller
{
public function index(): View
{
$users = User::orderBy('name')->paginate(10);
return view('users.index', compact('users'));
}
public function edit(User $user): View
{
$roles = Role::orderBy('name')->get();
return view('users.edit', compact('user', 'roles'));
}
public function update(Request $request, User $user): RedirectResponse
{
$validated = $request->validate([
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'email', 'max:255', 'unique:users,email,'.$user->id],
'roles' => ['nullable', 'array'],
'roles.*' => ['integer', 'exists:roles,id'],
]);
$user->update(['name' => $validated['name'], 'email' => $validated['email']]);
$user->roles()->sync($validated['roles'] ?? []);
return redirect()->route('users.index')->with('success', __('User updated successfully.'));
}
}