自定义验证规则

时间:2017-03-05 19:50:14

标签: php laravel validation rules

我想为重置密码的表单创建验证。

我有一个检查新密码是否相同且超过6个字符的方法。

如果给出以前的密码是否一致,我只想检查一件事。

    /**
* Reset user password
*
* @return void
*/
public function reset_password(Request $request){

    $this->validate($request, [
        'old_password' => 'required',
        'password' => 'required|min:6|confirmed'
    ]);

    $user = Auth::user();
    $user->password = bcrypt($request->password);
    $user->save();


    return redirect('/user/profile');
}

2 个答案:

答案 0 :(得分:0)

试试这个:

\Hash::check($request->password, $user->password);

答案 1 :(得分:0)

执行此操作的最佳方法是创建新的验证规则:Custom Validation Rules

我做了什么(未经测试):

// Somewhere inside your app service provider boot()
Validation::extend('notSamePassword', function($attribute, $value, $parameters, $validator) {
    return !Hash::check($attribute, $parameters[0]);
}

然后在你验证的控制器/地方:

$password = 'password hash to validate with';
$this->validate($request, [
    'old_password' => 'required',
    'password' => 'required|min:6|confirmed|notSamePassword:'.$password
]);