user role edit

This commit is contained in:
2026-05-11 12:28:38 +08:00
parent b0eef8fca1
commit 8c909adf62
7 changed files with 120 additions and 3 deletions

View File

@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Http\Requests\UpdateUserRequest;
use App\Models\Role;
use App\Models\User;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
@@ -28,8 +29,14 @@ class UserController extends Controller
*/
public function edit(User $user): View
{
$user->load('roles:id');
$roles = Role::query()
->orderBy('name')
->get(['id', 'name']);
return view('user.edit', [
'user' => $user,
'roles' => $roles,
]);
}
@@ -38,13 +45,19 @@ class UserController extends Controller
*/
public function update(UpdateUserRequest $request, User $user): RedirectResponse
{
$user->fill($request->validated());
$validated = $request->validated();
$roleIds = $validated['roles'] ?? [];
unset($validated['roles']);
$user->fill($validated);
if ($user->isDirty('email')) {
$user->email_verified_at = null;
}
$user->save();
$user->roles()->sync($roleIds);
return redirect()
->route('user.edit', $user)