Я работаю в laravel 5.1, и мой профиль обновления работает, но не будет зашифрован и не будет работать сейчас. Когда я пытаюсь обновить таблицу пользователя, будет также поле password_confirmation и возникнет конфликт в базе данных. Я не понимаю. В форме успешно сказано, но база данных не обновляет
Код
public function updatePassword() { $passwordData = Input::except('_token'); $validation = Validator::make($passwordData, User::$passwordData); if ($validation->passes()) { array_forget($passwordData,'password_confirmation'); User::where(array( 'password' => Hash::make(Input::get('password')) )); Session::flash('password', 'Perfil editado com sucesso'); return Redirect::to('backend/perfil/password'); } else { return Redirect::to('backend/perfil/password')->withInput()->withErrors($validation); } }
пользователь
public static $passwordData = array( 'password' => 'required|confirmed', 'password_confirmation' => 'required' );
Следуйте этим простым шагам, чтобы избавиться от всего
Шаг 1. Получите пароль из формы.
$PasswordData = Input::all();
Шаг 2. Проверка пароля.
Validator::extend('pwdvalidation', function($field, $value, $parameters) { return Hash::check($value, Auth::user()->password); });
Шаг 3: Определите правило проверки в User
модели
public static $rulespwd = array('OldPassword' => 'required|pwdvalidation', 'NewPassword' => 'required|confirmed|alphaNum|min:5|max:10', 'NewPassword_confirmation' => 'required', );
Note :
Вы должны определить свое собственное правило в соответствии с вашими потребностями.
Шаг 4: Если это правило передано, то обновите else, добавьте сообщения об ошибках в ваше представление
$validator = Validator::make($PasswordData, User::$rulespwd, $messages); if ($validator->passes()) { $user = User::find(Auth::user()->id); $user->password = Input::get('NewPassword'); $user->save(); return Redirect::to(Session::get('urlpath') . '/changepassword')->withInput()->with('Messages', 'The Password Information was Updated'); } else { return Redirect::to(Session::get('urlpath') . '/changepassword')->withInput()->withErrors($validator); }