관리-도구
편집 파일: ProfileController.php
<?php namespace App\Http\Controllers; use App\Http\Requests\ProfileUpdateRequest; use App\Models\Order; 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 index() { $user = Auth::user(); $orders = Order::with(['orderDetails.product', 'payment']) ->where('user_id', $user->id) ->whereHas('payment', function ($query) { $query->where('status', 'success'); }) ->orderBy('created_at', 'desc') ->get(); return view('frontend.profile', compact('user', 'orders')); } 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('/'); } }