У меня есть настройка страницы для сброса пароля пользователя электронной почты пользователя и пользователя zip_code для приложения. Однако я работаю правильно, если, например, я хочу просто изменить почтовый индекс, моя проверка не позволит ему из-за того, что он читает письмо, как уже существующее в базе данных, и возвращает ошибку. Каков наилучший способ обойти это? Я мог бы создать контроллер для каждого поля и сделать это индивидуально, но я чувствую, что есть некоторые утверждения, которые я мог бы использовать, может быть?Сброс электронной почты/пароля
Контроллер:
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 должен быть на месте, очевидно, поэтому он не получает сочетается с другой учетной записью
Кроме того, мой адрес электронной почты устанавливается через Auth .. Auth::user()->email
, если это помогает
Назначение хэш для '$ UserData [ 'confirm_password'] = Hash :: сделать (...)' не имеет никакого смысла. Невозможно сравнить два хэша, так что либо вы не используете '$ userdata ['confirm_password']' впоследствии, либо генерируемый хеш ужасно опасен и не использует соль. – martinstoeckli
Это не было связано с моим вопросом. Пароль и confirm_password просто просто для сравнения двух паролей в валидации. Пароль подтверждения поступает в базу данных, и поэтому они хэшируются после прохождения проверки. Поле подтверждения пароля НЕ используется в другом месте, кроме как для создания учетной записи и для изменения информации об учетной записи (как вы видите здесь). – Lynx
Я предполагаю, что могу удалить confirm_password для сохранения в моей базе данных и просто пароль. Если это ваша забота? Мне действительно не нужно это там. Я проверю это, хотя! Благодаря! – Lynx