guysartorelli / silverstripe-composable-validators
添加可组合表单验证器,具有可重用的验证逻辑。
2.3.0
2024-03-19 22:38 UTC
Requires
- php: ^8.1
- silverstripe/framework: ^5.2
Requires (Dev)
README
感谢 Signify 使此模块成为可能。
此模块提供了一系列可重用的可组合验证器(包括AJAX验证),可用于CMS和前端表单。
请至少查看扩展文档 - 其中一些应该在几乎所有使用此模块的项目中应用。
如果您的项目有任何自动化的客户端测试,或者您正在实现与该模块兼容的验证器,请确保您阅读了客户端测试文档。
安装
通过 composer 安装
composer require guysartorelli/silverstripe-composable-validators
注意事项
使用 AjaxCompositeValidator
提交表单
AjaxCompositeValidator
为您的表单添加了一个提交处理程序。这并不总是与其他提交处理程序很好地交互,可能会导致前端验证被跳过或表单以您预期的方式提交失败,具体取决于哪个提交处理程序首先接收到事件。为了获得最佳结果,请不要向表单添加其他提交处理程序。
如果您在2.3.0或更高版本的 undefinedoffset/silverstripe-nocaptcha 表单上使用 AjaxCompositeValidator
,您应该禁用该表单中的 NocaptchaField
的表单提交处理(请参阅nocaptcha文档中的说明)。
可用验证器
AjaxCompositeValidator
是CompositeValidator
的子类,提供AJAX验证。解决了 数据丢失问题,更快地修复验证问题,并提供了一种在客户端验证前端表单的方式。SimpleFieldsValidator
通过在它们上调用validate()
来确保表单字段的内部验证。RequiredFieldsValidator
类似于 Silverstripe 的RequiredFields
验证器,但在CompositeValidator
中使用更为方便。WarningFieldsValidator
如果某些字段没有值,则显示警告。对于提醒用户关于技术上有效但可能不符合预期结果的数据很有用。DependentRequiredFieldsValidator
使用SearchFilter
根据其他字段的值有条件地将字段定义为必填项(例如,只有当OtherField
的值大于25时才为必填项)。RequiredBlocksValidator
要求在ElementalArea
中存在特定的 elemental block(s),可选的最小和最大块数以及可选的位置验证。ConstraintsValidator
将值与symfony/validation
约束 进行验证。这非常强大 - 一定要看看。RegexFieldsValidator
(已弃用)
确保某些字段与指定的正则表达式模式匹配。
抽象验证器
BaseValidator
包括用于获取实际FormField
及其标签的有用方法。FieldHasValueValidator
BaseValidator
的子类。对于需要逻辑检查字段是否有任何值的验证器很有用。
特性
ValidatesMultipleFields
对于可以接收要验证的字段名数组的验证器很有用。ValidatesMultipleFieldsWithConfig
类似于ValidatesMultipleFields
,但需要对每个要验证的字段提供配置数组。