Profile edit

You have the option to edit the current logged in user's profile information (name, email, profile picture) and password. To access this page, just click the "Examples/Profile" link in the left sidebar or add /profile in the URL.

The App\Http\Controllers\ProfileController handles the update of the user information and password.


            public function update(ProfileRequest $request)
            {
                auth()->user()->update(
                    $request->merge(['picture' => $request->photo ? $request->photo->store('profile', 'public') : null])
                        ->except([$request->hasFile('photo') ? '' : 'picture'])
                );
            
                return back()->withStatus(__('Profile successfully updated.'));
            }
            
            /**
            * Change the password
            *
            * @param  \App\Http\Requests\PasswordRequest  $request
            * @return \Illuminate\Http\RedirectResponse
            */
            public function password(PasswordRequest $request)
            {
                auth()->user()->update(['password' => Hash::make($request->get('password'))]);
            
                return back()->withStatus(__('Password successfully updated.'));
            }
            

If you input the wrong data when editing the profile, don`t worry. Validation rules have been added to prevent this (see App\Http\Requests\ProfileRequest). If you try to change the password, you will see that additional validation rules have been added in App\Http\Requests\PasswordRequest. You also have a custom validation rule that can be found in App\Rules\CurrentPasswordCheckRule.


            public function rules()
            {
                return [
                    'old_password' => ['required', 'min:6', new CurrentPasswordCheckRule],
                    'password' => ['required', 'min:6', 'confirmed', 'different:old_password'],
                    'password_confirmation' => ['required', 'min:6'],
                ];
            }