首页 > 解决方案 > 尊重验证可选密钥

问题描述

有时用户可以发送一些丢失的键/值对。因此,在这种情况下,我需要验证可选键是否存在。

用户传记是一个可选字段。如果用户将其留空,我不希望它被发布。

v::key('biography', v::optional(v::stringType()->length(10, 1000)))

Abode 代码验证 biography 是否为 null 或为空,如果发布的对象不包含 biography 键,则会引发异常,因为验证器需要传记。我找不到检查“密钥是否存在继续验证链”的方法;我可以在验证之前将不存在的密钥添加到发布的数据中,但我相信在库中有更好的方法来做到这一点。

我正在寻找一个应该像这样的解决方案:

v::key('biography', v::keyExist(v::optional(v::stringType()->length(10, 1000))))

标签: phprespect-validation

解决方案


Key 的文档说明:

第三个参数使关键存在可选:

v::key('lorem', v::stringType(), false)->validate($dict); // true

也就是说,如果“lorem”不存在,验证将不会应用 StringType 验证。

见:http ://respect.github.io/Validation/docs/key.html


推荐阅读