验证

图片验证

在验证上传的图片时,可以指定所需的尺寸

['photo' => 'dimensions:max_width=4096,max_height=4096']

自定义验证错误的信息

只需在 resources/lang/xx/validation.php 文件创建适当的数组结构,就可以定义定每个 字段、规则和语言的验证错误消息。

'custom' => [
     'email' => [
        'required' => 'We need to know your e-mail address!',
     ],
],

用 now 或 yesterday 来验证日期

您可以使用 before/after 的规则验证日期,并将各种字符串作为参数传递,比如: tomorrow, now, yesterday。例如: 'start_date' => 'after:now'。它在底层下使用 strtotime ()

$rules = [
    'start_date' => 'after:tomorrow',
    'end_date' => 'after:start_date'
];

具有某些条件的验证规则

如果验证规则依赖于某些条件,则可以通过将 withValidator() 添加到 FormRequest 类中来修改规则,并在那里指定自定义逻辑。例如,如果您只想为某些用户角色添加验证规则。

更改默认验证消息

如果要更改特定字段和特定验证规则的默认验证错误消息,只需将 messages() 方法添加到 FormRequest 类中。

预验证

如果你想在默认的 Laravel 验证之前修改某个字段,或者,换句话说,“准备” 那个字段, FormRequest 类中有一个方法 prepareForValidation ()

第一次验证错误时停止

默认情况下,将在列表中返回 Laravel 验证错误,检查所有验证规则。但是如果你想要在第一个错误之后停止这个过程,使用验证规则叫做 bail:

如果你需要停止首次错误验证,可以设置 FormRequest 类中 $stopOnFirstFailuretrue:

不使用 validate 或者 FormRequest 就抛出 422

如果您不使用 validate()Form Request,但仍然需要使用相同的 422 状态码和错误结构抛出错误,那么可以手动抛出 throw ValidationException::withMessages()

规则取决于其他条件

如果您的规则是动态的并且依赖于其他条件,那么您可以动态地创建该规则数组

使用属性设置首次验证失败时停止

request 类中使用这个属性设置首次验证失败时停止。

注意 这个跟 Bail 规则不一样 只在单个规则失败时就停止

@Sala7JR 提供

unique 规则在软删除全局作用域中无效

Rule::unique 默认不在软删除的全局范围内。但是使用withoutTrashed 时可用。

@Zubairmohsin33 提供

sometimes 方法允许你定义验证器在什么时候被应用

Validator::sometimes 方法允许你定义验证器在什么时候被应用,基于提供的输入。 这个片段展示了如果购买的物品数量不够,如何禁止使用优惠券。

@cerbero90 提供

数组元素验证

如果你想要验证提交的数组元素,使用带 * 号的点符号。

HydroMoon 提供

提交自定义验证规则

感谢 Rule::when 我们可以指定提交验证规则。

下面例子我们可以验证用户是否真的可以对文章点赞。

@cerbero90 提供

Password 的 defaults 方法

使用 Password::defaults 方法验证用户提供的密码时,可以强制执行特定规则。它包括要求字母、数字、符号等的选项。

@mattkingshott 提供

表单验证重定向请求

使用表单请求进行验证时,默认情况下,验证错误将重定向回上一页,但您可以覆盖它

只需定义 $redirectredirectRoute 的属性即可

Link to docs

Mac 验证规则

Laravel 8.77 添加了新的 mac_address 规则

由 [@Teacoders] 提供

验证顶级域名邮箱

email 验证规则将接受一个非顶级域名邮箱 (例子:taylor@laravel, povilas@ldaily)

但是你如果想确保邮箱必须有一个顶级域名 (例子:[email protected], [email protected]) 使用email:filter规则

@Chris1904 提供

新的数组验证规则 required_array_keys

Laravel 8.82 增加了一个 required_array_keys 的验证规则,该规则检查所有指定的键是否存在于一个数组中。

能通过验证的有效数据:

不能通过验证的有效数据:

@AshAllenDesign 提供

验证信息中的占位符

在 Laravel 9 中,如果你正在处理数组,你可以在验证信息中使用:position 占位符。

将会输出 :"Please provide an amount for price #2"

@mmartin_joo 提供

最后更新于

这有帮助吗?