0

ユーザーの電子メール アドレスのパスワードとアプリケーションのユーザーの zip_code をリセットするためのページ設定があります。私は正しく動作していますが、たとえば、郵便番号を変更したい場合、電子メールをデータベースに既に存在するものとして読み取ってエラーを返すため、検証で許可されません。これを回避する最善の方法は何ですか? フィールドごとにコントローラーを作成して個別に行うこともできますが、おそらく使用できる if ステートメントがいくつかあると思いますか?

コントローラ:

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');
} 

別のアカウントと一致しないように、ユニークな必要があることは明らかです

また、私の電子メールはAuthを介して設定されています..Auth::user()->emailそれが役立つ場合

4

1 に答える 1