简体   繁体   中英

Resetting Email/Password

I have a page setup to reset the user's email address password and the users zip_code for an application. I have it working correctly however, if for example I want to just change the zip code my validation will not allow it due to it reading the email as already existing in the database and returns an error. What is the best way around this? I could create a controller for each field and do it individually but I feel there is some if statement I could use maybe?

Controller:

enter        
public function getEditUser() {
    $userdata = array(
        'email'            => Input::get('email'),
        'password'         => Input::get('password'),
        'confirm_password' => Input::get('confirm_password'),
        'user_zip_code'    => Input::get('user_zip_code')
    );

    $rules = array(
        'email'            => 'required|email|unique:users,email',
        'password'         => 'required|min:5',
        'confirm_password' => 'required|same:password',
        'user_zip_code'    => 'required'
    );

    $validation = Validator::make($userdata, $rules);
    if ($validation->fails()) {
        return Redirect::to('dashboard/edit/account')->withErrors($validation)       
            ->withInput();
    }

    $userdata['password']         = Hash::make($userdata['password']);
    $userdata['confirm_password'] = Hash::make($userdata['confirm_password']);

    User::find(Auth::user()->id)->update($userdata);

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

Unique needs to be in place obviously so it doesn't get matched with another account

Also my email is set through Auth.. Auth::user()->email if that helps

You can set the validation unique rule to ignore the current id

$rules = array(
                'email' => 'required|email|unique:users,email,'.Auth::user()->id,
                'password' => 'required|min:5',
                'confirm_password' => 'required|same:password',
                'user_zip_code' => 'required'
            );

See here for more info from the docs

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM