Trên biểu mẫu đặt lại mật khẩu, người dùng cung cấp current_password
, password
và password-confirmation
. Có cách nào để chỉ định trong quy tắc xác thực rằng current_password
(giá trị băm của nó) phải khớp với giá trị cơ sở dữ liệu không?Quy tắc xác thực Laravel 4.2 - Mật khẩu hiện tại phải khớp với giá trị DB
Hiện nay tôi có điều này:
$rules = array(
'current_password' => 'required',
'password' => 'required|confirmed|min:22'
);
Cảm ơn bạn.
CẬP NHẬT
Nhờ @ChrisForrence và @Ben, tôi đã đưa ra những điều sau đây mà hoạt động tuyệt vời! Nhiều đánh giá cao. Hy vọng điều này sẽ giúp người khác:
Validator::extend('hashmatch', function($attribute, $value, $parameters)
{
return Hash::check($value, Auth::user()->$parameters[0]);
});
$messages = array(
'hashmatch' => 'Your current password must match your account password.'
);
$rules = array(
'current_password' => 'required|hashmatch:password',
'password' => 'required|confirmed|min:4|different:current_password'
);
$validation = Validator::make(Input::all(), $rules, $messages);
Điều này có thể hữu ích: [Quy tắc xác thực tùy chỉnh] (http://laravel.com/docs/validation#custom-validation-rules) –
Điểm tuyệt vời! Hãy để tôi thử và chúng tôi sẽ thử nó ở đó. Cảm ơn bạn. – PeterKA