我正在使用 Silex,并尝试使用验证器服务验证某些值。但问题是我需要对一个值应用多个约束,但验证器在不使用Required
约束的情况下不允许这样做。
当我只想验证一个选择值(比如,'apple' 或 'orange')时,我必须将约束Choice
和NotNull
(因为Choice
允许一个null
值)包装到Required
和Collection
(因为Required
不能没有它就不能使用Collection
,它是CollectionValidator
谁验证了一系列Required
的约束) 像这样:
$violations = $app['validator']->validate(array('value'),
new Collection(array(
new Required(array(
new Choice(array('apple', 'orange')),
new NotNull()
))
)));
它看起来很冗长,所以我正在寻找更优雅的解决方案(对于验证器的这种显式使用)。