2017-08-10 35 views
0

通过查看ResetsPasswords code我可以看到,规则方法是受保护:laravel重置密码自定义验证程序?

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

什么是增加一个自定义的验证到重置密码形式,如果我不能重写规则方法laravel适当的方式吗?

我可以重写复位方法,但它太大了,如果在未来的版本中他们会改变一些逻辑,我就麻烦了,因为我不想惹太多具有防伪功能

+0

也许我错过了一些东西,但你应该可以覆盖它。 – user3158900

回答

0

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

其中之一是ResetPasswordController控制器,即加载特征。

在本课中,您可以覆盖rules()函数。

如果你不想更新rules()函数,你必须更新reset()函数来修改你的数组。但我不建议这样做,因为这个功能比较复杂,并且会比rules()功能明显改变。

如果你要更新的特质,你可以像这样的扩展它:

trait CustomResetsPasswords { 
    use ResetsPasswords; 

    public function rules() { 
     //return my custom rules 
    } 
} 

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

+0

它默认拥有它们,在这种情况下不需要生成auth scaffolding。 – user3158900

+0

@ user3158900,谢谢,更新了我的回答 – mimo

+0

我感到困惑,不知怎的,我以为我不能重写受保护的方法:/ –