[英]update profile password laravel 5
我正在使用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:如果通過了規則,請更新,否則將錯誤消息發送到您的視圖
$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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.