Запутался насчет Laravel "иногда" проверки работоспособности - PullRequest
0 голосов
/ 30 апреля 2020

Я действительно не понимаю, почему это происходит? Затем я успешно добавил запись, когда пытался обновить запись. Это говорит о том, что поле обязательно для заполнения, даже если я его уже пропустил. Затем, когда я попытался добавить «иногда» на проверку. Теперь это работает. Почему? Пожалуйста, просветите меня. Спасибо!

моя тестовая модель

Это был результат, когда я пытался удалить "иногда"

Ответы [ 3 ]

1 голос
/ 30 апреля 2020

Добавление sometimes эффективно отключает правило required и позволяет клиенту просто не передавать это поле во входные данные.

В вашем случае, валидатор, вероятно, не получает правильные данные от ввода. Потому что если это так, правило required будет действовать правильно.

Пожалуйста, опубликуйте код вашего валидатора, чтобы иметь возможность отладить проблему.

1 голос
/ 30 апреля 2020

В соответствии с do c sometimes используется для:

Проверка при наличии В некоторых ситуациях вы можете sh выполнить проверку проверки для поля, только если это поле присутствует во входном массиве. Чтобы быстро выполнить это sh, добавьте правило иногда в свой список правил:

$v = Validator::make($data, [
    'email' => 'sometimes|required|email', ]);

Поэтому, поскольку запрос не содержит ожидаемых полей, проверка прошла успешно

0 голосов
/ 30 апреля 2020

sometimes - это когда вы иногда включаете поле.

Давайте рассмотрим пример проверки при создании пользователя: -

$validation = [
 "name" => "required|string|",
 "email" => "required|email",
 "hobbies" => "sometimes|array"
];

Примеры полезных нагрузок

{
 name: "Bob",
 email: "bob@gmail.com"
}
// this will pass
{
 name: "Bob",
 email: "bob@gmail.com",
 hobbies: ["fishing", "swimming"]
}
// this would also pass
{
 name: "Bob",
 email: "bob@gmail.com",
 hobbies: "swimming"
}
// this would fail since it doesn't match "array" validation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...