Я пытаюсь проверить поле пароля, только если оно присутствует. Я хочу, чтобы кто-то мог редактировать пользователя, и он может захотеть или не захотеть изменить пароль пользователя. Поэтому я подумал, что смогу это сделать, используя правила проверки Laravels, в частности правило «иногда». У меня есть такой набор правил:
Код: Выделить всё
$this->validate($request, [
'password' => 'sometimes|required|min:8',
]);
Это упрощенный пример: обычно существуют другие правила для других полей и более строгие правила для пароля. Я ожидаю, что правило min:8 будет применяться только в том случае, если поле пароля присутствует в переданных данных, но если я оставлю поле пароля пустым, я получу ошибку проверки, сообщающую, что поле пароля является обязательным.
Я не уверен, чего я не понимаю в документации. Нужно ли вручную удалять поле пароля перед проверкой, если ввод формы был отправлен пустым, как здесь?
Код: Выделить всё
$data = $request->all();
if ('' === $data['password']) {
unset($data['password'])
}
...а затем передайте массив в валидатор. Я думаю, что это имеет смысл, но мне не помешало бы некоторое подтверждение того, что я правильно это понимаю. Заранее спасибо.
Подробнее здесь:
https://stackoverflow.com/questions/351 ... ation-rule