2017-03-06 42 views
5

używam tego, aby edytować User Account Info:laravel Password & Password_Confirmation Validation

$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' 
]);` 

To działało w porządku w laravel 5.2 aplikacji, ale nie działa w 5.4 Application.

image

Co się stało tutaj, lub to, co jest poprawny sposób, aby tylko zrobić hasło wymagane, jeśli albo hasło lub pole password_confirmation isset?

Odpowiedz

8

Można użyć reguły sprawdzania poprawności confirmed.

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

Spróbuj tego:

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

Nie ma potrzeby ' 'password_confirmation' => 'wymagany | min: 6' ' – Neabfi

+0

nie jest to wymagane, ponieważ automatycznie sprawdzi poprawność hasła, –

3

spróbować potwierdzone i bez reguły password_confirmation:

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

Czy 'confirm' również zapewnia, że ​​ma tę samą wartość? Ponieważ z dokumentacji widzę tylko, że musi być obecne pole 'xyz_confirmation', chociaż mogę się mylić. – Scarwolf

+0

Mam nadzieję, że używam również potwierdzonej w mojej aplikacji – dparoli

+0

From Laravel 5.4 docs: 'confirmed'' Pole w sprawdzaniu poprawności musi mieć pasujące pole foo_confirmation. Na przykład, jeśli pole pod sprawdzania poprawności jest hasłem, musi być obecne pasujące pole password_confirmation ", gdzie dopasowanie oznacza, że ​​pole jest obecne i jest takie samo – Desh901