如何在 Laravel 中设置非必需的验证规则?

J. *_*Doe 2 php laravel

我正在尝试在 Laravel 5.8 中进行一些表单验证,

但即使在没有required规则的字段上,它也会抛出错误......

例如:

request()->validate([
    'username' => ['required','alpha_num','max:40'],
    'email'   => ['email','max:100'],
]);
Run Code Online (Sandbox Code Playgroud)

如果我将email表单上的字段保留为“空”(不是必需的),则它无法提交并显示此错误:The email must be a valid email address.

我不明白,为什么会发生这种情况?required当这是 Laravel 验证的行为时,规则的用途是什么?

来自 CodeIgniter 社区,这令人困惑。

我还应该nullable在可以为空的字段中包含规则吗?

Rag*_*ata 5

是的,您应该包含nullable在可以为空的字段中。

当我第一次使用 Symphony(Laravel 基于它)时,我发现这有点棘手。如果向字段添加验证规则,则验证规则不允许使用null值,除非该字段也标记为nullable

您收到报告错误的原因是因为您正在强制该email字段通过email验证规则 - 当然,如果留空则不会。