laravel 重置密码自定义验证器?

Ami*_*Bar 2 php laravel laravel-5 laravel-5.4

通过查看ResetsPasswords 代码,我可以看到规则方法受到保护:

 protected function rules()
    {
        return [
            'token' => 'required',
            'email' => 'required|email',
            'password' => 'required|confirmed|min:6',
        ];
    }
Run Code Online (Sandbox Code Playgroud)

如果我无法覆盖规则方法,在 laravel 中将另一个自定义验证添加到重置密码表单中的适当方法是什么?

我可以覆盖重置方法,但它太大了,如果在未来的版本中他们会改变一些逻辑,我会遇到麻烦,因为我不想过多地干扰安全功能

cre*_*re8 7

Laravel 有一些基本的身份验证控制器App\Http\Controllers\Auth;

其中之一是ResetPasswordController控制器,它正在加载特征。

在此类中,您可以覆盖该rules()函数。

如果您不想更新该rules()函数,则必须更新该reset()函数才能修改您的数组。但我不建议这样做,因为这个函数比rules()函数更复杂,而且会明显改变。

如果你想更新特征,你可以像这样扩展它:

trait CustomResetsPasswords {
    use ResetsPasswords;

    public function rules() {
        //return my custom rules
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在ResetPasswordController你使用你的CustomResetsPasswords特质。