我有一个非常简单的字符串数组,存储在数据库中并通过 API 提供。使用 Symfony 的表单类型,我为各种数据添加了验证。我遇到了一个CollectionType本质上是字符串数组的墙,例如:['key', 'words', 'are', 'the', 'best']使用表单代码:->add('keywords', CollectionType::class, [ 'allow_add' => true, 'constraints' => [ new Count(['min' => 1]), new NotBlank(['allowNull' => false]) ]])这允许以下内容通过约束:[null]和['']如果我能弄清楚我做错了什么,我也想为每个元素添加 Regex 验证。
1 回答

慕神8447489
TA贡献1780条经验 获得超1个赞
如果您只想删除空元素,delete_empty
应该这样做,您可以删除NotBlank
.
要对元素应用额外的验证,您必须将约束传递给集合项,而不是集合本身,方法是使用entry_options
:
->add('keywords', CollectionType::class, [
'allow_add' => true,
'delete_empty' => true,
'constraints' => [
new Count(['min' => 1]),
],
'entry_options' => [
'constraints' => [
new Regex(['pattern' => '/whateverpattern/']),
],
],
])
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消