我在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);
}