Laravel Password & Password_Confirmation Validation

Я использовал это для того, чтобы редактировать информацию об учетной записи пользователя:

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

Это нормально работало в приложении Laravel 5.2, но не работает в приложении 5.4.

image

Что здесь не так или как правильно сделать, чтобы сделать password обязательным, только если установлено поле password или password_confirmation?

Ответ 1

Вы можете использовать правило проверки confirmed.

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

Ответ 2

Попробуйте сделать это так, у меня получилось:

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

Похоже, что правило всегда имеет проверку на первом входе среди пары...

Ответ 3

попробуйте подтвердить и без правила password_confirmation:

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

Ответ 4

Попробуйте следующее:

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

Ответ 5

Этого должно быть достаточно, чтобы сделать:

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

Сделать пароль необязательным, но при его наличии требуется подтверждение пароля, соответствующее