Skip to main content

ProfileController.php

Sebagai Profile User Manager

Mengatur semua yang berkaitan dengan user

  1. Menampilkan form profil user (nama, email, dsb.)
  2. Memperbarui informasi user
  3. Menghapus akun user
<?php

namespace App\Http\Controllers;

use App\Http\Requests\ProfileUpdateRequest;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;
use Illuminate\View\View;

class ProfileController extends Controller
{
/**
* Display the user's profile form.
*/
public function edit(Request $request): View
{
return view('profile.edit', [
'user' => $request->user(),
]);
}

/**
* Update the user's profile information.
*/
public function update(ProfileUpdateRequest $request): RedirectResponse
{
$request->user()->fill($request->validated());

if ($request->user()->isDirty('email')) {
$request->user()->email_verified_at = null;
}

$request->user()->save();

return Redirect::route('profile.edit')->with('status', 'profile-updated');
}

/**
* Delete the user's account.
*/
public function destroy(Request $request): RedirectResponse
{
$request->validateWithBag('userDeletion', [
'password' => ['required', 'current_password'],
]);

$user = $request->user();

Auth::logout();

$user->delete();

$request->session()->invalidate();
$request->session()->regenerateToken();

return Redirect::to('/');
}
}