web-dev-qa-db-ja.com

Laravelパスワードとパスワード_確認の検証

ユーザーアカウント情報を編集するためにこれを使用しています。

$this->validate($request, [
    'password' => 'min:6',
    'password_confirmation' => 'required_with:password|same:password|min:6'
]);

これはLaravel 5.2アプリケーションでは正常に機能しましたが、5.4アプリケーションでは機能しません。

image

ここで何が間違っているのですか、またはpasswordまたはpassword_confirmationフィールドのいずれかが設定されている場合にのみpasswordを必須にする正しい方法は何ですか?

32
Scarwolf

確認済み 検証ルールを使用できます。

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

このようにしてみてください、それは私のために働いた:

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

ルールは常にペアの最初の入力で検証を持っているようです...

26
omeati

password_confirmationルールなしで確認してみてください:

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

これを試して:

'password' => 'required|min:6|confirmed',
'password_confirmation' => 'required|min:6'
3
Odin Thunder

それで十分です:

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

パスワードをオプションにしますが、存在する場合は、一致するpassword_confirmationが必要です

0
Luca C.