我有一個非常簡單的字符串數組,存儲在數據庫中并通過 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 關注
- 97 瀏覽
添加回答
舉報
0/150
提交
取消