Правило проверки старого пароля и нового пароля
Я проверяю старый пароль и новый пароль с паролем подтверждения.
Здесь я хочу проверить, не должны ли Old Password и New Password совпадать.
Как я могу это сделать?
Вот мое правило:
public static $rulespwd = array('OldPassword' => 'required|pwdvalidation',
'NewPassword' => 'required|confirmed|min:1|max:10',
'NewPassword_confirmation' => 'required',
);
Вот мой код контроллера для проверки:
$PasswordData = Input::all();
Validator::extend('pwdvalidation', function($field, $value, $parameters)
{
return Hash::check($value, Auth::user()->password);
});
$messages = array('pwdvalidation' => 'The Old Password is Incorrect');
$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('changepassword')->with('Messages', 'The Password Information was Updated');
}
Примечание: я использую модель для правила проверки. Как я могу сделать это в модели?
1 ответ
Решение
Просто используйте different
правило валидации - как описано в документах Laravel
public static $rulespwd = array('OldPassword' => 'required|pwdvalidation',
'NewPassword' => 'required|confirmed|min:6|max:50|different:OldPassword',
'NewPassword_confirmation' => 'required',
);
Кроме того - почему вы ограничиваете пароль до 10 символов? Это глупо - нет никаких причин ограничивать это вообще. Все, что вы делаете, это снижаете безопасность вашего приложения.