Laravel 验证中有时和可为空的区别

Posted

技术标签:

【中文标题】Laravel 验证中有时和可为空的区别【英文标题】:Differences between sometimes and nullable in Laravel validation 【发布时间】:2021-09-02 08:06:43 【问题描述】:

假设我可以通过两种方式进行验证

 'active' => 
     'sometimes',
 

 'active' => 
     'nullable',
 

有什么区别?什么时候一个会过去,另一个不会?

还有同样的问题:

 'user_id' => 
     'sometimes|exists:user,id',
 

 'user_id' => 
     'nullable|exists:user,id',
 

我已阅读有关某个主题的多篇文章,包括文档,但我仍然不明白。在没有其他规则的情况下(如我的第一个示例)使用时有时或可为空是否有意义?

【问题讨论】:

nullable 与 optional 不同。 nullable 影响存在但可能为空或不为空的输入。 sometimes 影响不存在的输入 【参考方案1】:

可以为空:

Laravel 使用中间件 ConvertEmptyStringsToNull 将空值转换为 null。因此,如果您不希望验证器将空值视为无效,您通常需要将“可选”请求字段标记为可空。

有时:

如果您只想在请求中存在该字段时验证该字段。这在我们使用 javascript 或 jQuery 操作 DOM 时很有用。

Read More

【讨论】:

以上是关于Laravel 验证中有时和可为空的区别的主要内容,如果未能解决你的问题,请参考以下文章

XmlCodeExporter 和可为空的类型

XmlSerializer 和可为空的属性

JPA 可嵌入 PK 和可为空的字段

如何在基于块的 API 方法中使用非空和可为空的 Objective-C 关键字

将 XDocument.Descendants 与合并运算符一起使用??和可为空的类型

Azure API 管理:使用可为空的属性验证内容