You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
		
		
		
		
		
			
		
			
				
					
					
						
							63 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							63 lines
						
					
					
						
							1.5 KiB
						
					
					
				<?php | 
						|
 | 
						|
namespace App\Http\Controllers; | 
						|
 | 
						|
use App\Http\Requests\ProfileUpdateRequest; | 
						|
use Illuminate\Contracts\Auth\MustVerifyEmail; | 
						|
use Illuminate\Http\RedirectResponse; | 
						|
use Illuminate\Http\Request; | 
						|
use Illuminate\Support\Facades\Auth; | 
						|
use Illuminate\Support\Facades\Redirect; | 
						|
use Inertia\Inertia; | 
						|
use Inertia\Response; | 
						|
 | 
						|
class ProfileController extends Controller | 
						|
{ | 
						|
    /** | 
						|
     * Display the user's profile form. | 
						|
     */ | 
						|
    public function edit(Request $request): Response | 
						|
    { | 
						|
        return Inertia::render('Profile/Edit', [ | 
						|
            'mustVerifyEmail' => $request->user() instanceof MustVerifyEmail, | 
						|
            'status' => session('status'), | 
						|
        ]); | 
						|
    } | 
						|
 | 
						|
    /** | 
						|
     * 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'); | 
						|
    } | 
						|
 | 
						|
    /** | 
						|
     * Delete the user's account. | 
						|
     */ | 
						|
    public function destroy(Request $request): RedirectResponse | 
						|
    { | 
						|
        $request->validate([ | 
						|
            'password' => ['required', 'current_password'], | 
						|
        ]); | 
						|
 | 
						|
        $user = $request->user(); | 
						|
 | 
						|
        Auth::logout(); | 
						|
 | 
						|
        $user->delete(); | 
						|
 | 
						|
        $request->session()->invalidate(); | 
						|
        $request->session()->regenerateToken(); | 
						|
 | 
						|
        return Redirect::to('/'); | 
						|
    } | 
						|
}
 | 
						|
 |