2017-03-06 105 views
5

我为了编辑用户帐户信息被使用的情况:Laravel密码和验证Password_Confirmation

$this->validate($request, [ 
    'name' => 'required|min:3|max:50', 
    'email' => 'email', 
    'vat_number' => 'max:13', 
    'password' => 'min:6', 
    'password_confirmation' => 'required_with:password|same:password|min:6' 
]);` 

这在Laravel 5.2应用程序工作正常,但在5.4应用程序无法正常工作。

image

什么是错在这里,或什么是正确的方法,以如果密码或者password_confirmation场isset不仅使所需的密码?

回答

8

您可以使用confirmed验证规则。

$this->validate($request, [ 
    'name' => 'required|min:3|max:50', 
    'email' => 'email', 
    'vat_number' => 'max:13', 
    'password' => 'required|confirmed|min:6', 
]); 
1

试试这个:

'password' => 'required|min:6|confirmed', 
'password_confirmation' => 'required|min:6' 
+0

没有必要' 'password_confirmation'=>的 '需要|分:6' ' – Neabfi

+0

它不是必需的,因为它会自动验证确认密码, –

3

尝试证实并没有password_confirmation规则:

$this->validate($request, [ 
     'name' => 'required|min:3|max:50', 
     'email' => 'email', 
     'vat_number' => 'max:13', 
     'password' => 'confirmed|min:6', 
    ]); 
+0

确认'也确保它是相同的值?因为从文档中我只能看到必须有一个'xyz_confirmation'字段,尽管我可能是错的。 – Scarwolf

+0

我希望如此,我也在我的应用中使用确认 – dparoli

+0

来自Laravel 5.4文档:'确认''验证字段必须有一个匹配的foo_confirmation字段。例如,如果验证中的字段是密码,则匹配的密码确认字段必须存在于输入中.',匹配意味着该字段存在并且它们是相同的 – Desh901