Я нашел решение. Лучший способ сделать это простым способом - поместить расширение перед маркой:
ользую Laravel 5.3. Я хочу использовать проверку формы, чтобы проверить хэш пароля пользователя.
Вот мой код:
$validator = Validator::make($request->all(), [
'old_password' => 'required|max:20|min:6',
'new_password' => 'required|max:20|min:6',
'new_password_confirm' => 'required|same:new_password',
]);
// test old password
if (! Hash::check($request->old_password, $user->user_passwd)) {
$validator->errors()->add('end', 'The end time must be within three hours of the start');
}
Это не работает, даже если условие проверено. Я проверил это:
Validator::extend('old_password', function($attribute, $value) use ($user) {
return Hash::check($value, $user->user_passwd);
});
Но я не понимаю, как это использовать?
РЕШЕНИЕ :
Хорошо, лучший способ сделать это простым способом - поместить расширение перед маркой:
Validator::extend('checkPassword', function ($attribute, $value, $parameters, $validator) use($user) {
return Hash::check($value, $user->user_passwd);
}, 'Your message error !');
$validator = Validator::make($request->all(), [
'old_password' => 'required|max:20|min:6|checkPassword',
'new_password' => 'required|max:20|min:6',
'new_password_confirm' => 'required|same:new_password',
]);