Я пытаюсь проверить поле пароля только в том случае, если оно присутствует. Я хочу разрешить кому-либо редактировать пользователя, и они могут или не хотят изменять пароль пользователей. Поэтому я думал, что могу это использовать правила валидации Laravels, в частности правило «иногда». У меня есть этот набор правил:Laravel иногда правило проверки
$this->validate($request, [
'password' => 'sometimes|required|min:8',
]);
Это упрощено для примера, как правило, будут другими правилами для других областей и более строгих правил для пароля. Я ожидаю, что это применит правило min: 8, только если поле пароля присутствует в переданных данных, но если я покину поле пароля пустым, я получу ошибку проверки, указывающую, что требуется поле пароля.
Я не уверен, что я не понимаю в документах. Нужно ли вручную удалить поле пароля перед проверкой, если оно было введено как форма?
$data = $request->all();
if ('' === $data['password']) {
unset($data['password'])
}
... а затем передать массив в валидатор. Я думаю, что это имеет смысл, но я могу сделать с некоторым подтверждением, что я правильно понимаю. Заранее спасибо.
С docs, вот что я понимаю. Таким образом, в основном вы можете идти, если кто-либо не говорит иначе. –
Также кажется, что, если вы удалите требуемое правило, оно отлично работает: «иногда | min: 8 .....», но документы на самом деле не делают этого ясно. – Steven1978
Yup. это то, что я думал сначала, а затем снова проверил документы. : D –