diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 3201ed4..a6fbeca 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -3,6 +3,8 @@ namespace App\Http\Controllers; use App\Models\User; +use Illuminate\Http\RedirectResponse; +use Illuminate\Http\Request; use Illuminate\View\View; class UserController extends Controller @@ -13,4 +15,21 @@ class UserController extends Controller return view('users.index', compact('users')); } + + public function edit(User $user): View + { + return view('users.edit', compact('user')); + } + + 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], + ]); + + $user->update($validated); + + return redirect()->route('users.index')->with('success', __('User updated successfully.')); + } } diff --git a/resources/views/users/edit.blade.php b/resources/views/users/edit.blade.php new file mode 100644 index 0000000..2b56d48 --- /dev/null +++ b/resources/views/users/edit.blade.php @@ -0,0 +1,39 @@ + + +

+ {{ __('Edit User') }} +

+
+ +
+
+
+
+
+ @csrf + @method('PATCH') + +
+ + + +
+ +
+ + + +
+ +
+ {{ __('Save Changes') }} + + {{ __('Cancel') }} + +
+
+
+
+
+
+
diff --git a/resources/views/users/index.blade.php b/resources/views/users/index.blade.php index ab5255d..b57a90f 100644 --- a/resources/views/users/index.blade.php +++ b/resources/views/users/index.blade.php @@ -9,6 +9,12 @@
+ @if (session('success')) +
+ {{ session('success') }} +
+ @endif + @@ -21,6 +27,7 @@ + @@ -35,6 +42,11 @@ + @endforeach diff --git a/routes/web.php b/routes/web.php index ce44b28..4e7c043 100644 --- a/routes/web.php +++ b/routes/web.php @@ -14,6 +14,8 @@ Route::get('/dashboard', function () { Route::middleware('auth')->group(function () { Route::get('/users', [UserController::class, 'index'])->name('users.index'); + Route::get('/users/{user}/edit', [UserController::class, 'edit'])->name('users.edit'); + Route::patch('/users/{user}', [UserController::class, 'update'])->name('users.update'); Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit'); Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update'); Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
{{ __('Joined') }}
{{ $user->created_at->format('M j, Y') }} + + {{ __('Edit') }} + +