App\Http\Controllers\UsersManagementController::update PHP Method

update() public method

Update the specified resource in storage.
public update ( Illuminate\Http\Request $request, integer $id ) : Illuminate\Http\Response
$request Illuminate\Http\Request
$id integer
return Illuminate\Http\Response
    public function update(Request $request, $id)
    {
        $current_roles = array('3', '2', '1');
        $rules = array('name' => 'required', 'email' => 'required|email');
        $validator = $this->validator($request->all(), $rules);
        if ($validator->fails()) {
            $this->throwValidationException($request, $validator);
        } else {
            $user = User::find($id);
            $user->name = $request->input('name');
            $user->email = $request->input('email');
            $user->profile->bio = $request->input('bio');
            $input = Input::only('role_id');
            $user->removeRole($current_roles);
            $user->assignRole($input);
            $profile = Profile::find($id);
            $profileInputs = Input::only('location', 'bio', 'twitter_username', 'github_username');
            // CHECK IF PROFILE EXISTS THEN CREATE OR SAVE PROFILE
            if ($user->profile == null) {
                $profile = new Profile();
                $profile->fill($profileInputs);
                $user->profile()->save($profile);
            } else {
                $user->profile->fill($profileInputs)->save();
            }
            // SAVE USER CORE SETTINGS
            $user->save();
            return redirect('users/' . $user->id . '/edit')->with('status', 'Successfully updated the user!');
        }
    }